簡體   English   中英

比較WordPress中的密碼始終返回false

[英]Compare password in WordPress always return false

我想通過編碼在WordPress中插入新用戶,然后比較用戶名和密碼。 我試圖通過兩種方式插入用戶名和密碼。

1個

插入新的用戶代碼(表-wp_users)

$email = $_POST['txtEmail'];
$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212
$hash_value = password_hash($password, PASSWORD_BCRYPT);
$user_id = wp_create_user( $userName, $hash_value, $email);

2

嘗試以其他方式插入密碼

$settings = array('cost' => 10, 'salt' => 'rSq.2M7Ikc.QPhVtYlp1Nu');
$hash_value = password_hash($password, PASSWORD_BCRYPT, $settings);
$user_id = wp_create_user( $userName, $hash_value, $email);

我沒有添加代碼來檢查用戶名和表中是否存在電子郵件。 上面的代碼正常工作,並且在wp_users表中添加了新用戶,並且密碼以哈希格式存儲。 例如 $ P $ BgynwP / kZuQu5p / SAU / dTMA19sbJs3 /

我試圖通過兩個函數比較它,但是它總是返回false。

1個

$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212

$user = get_user_by( 'login', $userName );
$result = wp_check_password( $password, $user->user_pass, $user->ID);
if($result){
        echo 'Correct';
    }else{
        echo 'Wrong'; //Always return wrong
    }

2

$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212
$user = get_user_by( 'login', $userName );
$isPasswordCorrect = password_verify($password, $user->user_pass);
if($isPasswordCorrect){
        echo 'Correct';
    }else{
        echo 'Wrong'; //Always return wrong.
    }

還嘗試了-

var_dump(password_verify($password, $user->user_pass));

但是它仍然返回false。

讓我知道,如果在比較密碼或技術時我的代碼中有任何錯誤是錯誤的。

謝謝

您可以使用wp_authenticate_username_password()

驗證用戶身份,確認用戶名和密碼有效

$email = $_POST['txtEmail'];
$userName = $_POST['txtUserName'];//Sahil
$password = $_POST['txtPassword'];//1212
$check = wp_authenticate_username_password( NULL, $userName , $password );

然后,您可以簡單地檢查結果

if(is_wp_error( $check ))
{
  echo 'Wrong'; 
}
else
{
  echo 'Correct';
}

在WordPress中創建用戶wp_create_user()密碼自動保存到數據庫,無需轉換password_hash

wp_create_user( "Sahil", "1212", "Sahil@gmail.com" );

您必須在wp_create_user使用普通密碼,而不是哈希。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM