簡體   English   中英

WordPress的密碼如何比較用戶密碼和WordPress的用戶表密碼?

[英]Wordpress password how to compare user password to wordpress user table password?

自定義注冊用戶

wp_create_user(有效)

    $username='balan';
    $user_pass ='balan';
    $user_email= 'random_email@email.com';
    $password = wp_hash_password( $user_pass );
    $user_id = wp_create_user( $user_name, $password, $user_email );

自定義登錄用戶

    $username='balan';
    $user = get_user_by( 'login', $username );
    $pass ='balan';
    $hash = wp_hash_password($pass);
    if (wp_check_password( $pass, $user->data->user_pass, $user->ID ) ) {
        echo "<br>Correct";
    } else {
        echo "<br>Wrong";
    }
    **WordPress login function** 
    $creds = array();
    $creds['user_login'] = 'balan';
    $creds['user_password'] ='balan';
    $creds['remember'] = true;
    $user = wp_signon( $creds, false );

比較登錄密碼時出現錯誤。 如何比較登錄密碼? wp_check_password()不起作用。 請幫我解決這個問題。

比較一個已經散列的密碼和它的純文本字符串,這是示例。

<?php
$wp_hasher = new PasswordHash(8, TRUE);

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
    echo "YES, Matched";
} else {
    echo "No, Wrong Password";
}
?>

我想不是$user->data->user_pass您需要使用$user->user_pass; 根據此處的文檔https://developer.wordpress.org/reference/functions/get_user_by/

我只是猜測,因為我不知道什么print_r($user); 回報

希望能幫助到你 !

wp_create_user調用wp_insert_user它使用wp_hash_password內部。

本質上,您的代碼最終會導致

 wp_hash_password(wp_hash_password('balan'));

應該為wp_create_user提供原始密碼。

暫無
暫無

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

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