php - WordPress密码如何将用户密码与WordPress用户表密码进行比较?

标签 php wordpress

自定义注册用户

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->user_pass; 而不是 $user->data->user_pass ,按照此处的文档https://developer.wordpress.org/reference/functions/get_user_by/

我只是猜测,因为我不知道 print_r($user); 返回什么

希望对你有帮助!

关于php - WordPress密码如何将用户密码与WordPress用户表密码进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37181282/

相关文章:

wordpress - 累积布局偏移

javascript - JSON 不在 PHP 的 javascript 中解析

php - 如何使用 Php 将我的 Android 应用程序连接到 Amazon RDS MySQL 数据库?

php - 我们的脚本生成的文件夹/文件没有适当的权限

php - iOS 推送通知消息 - 单击 VIEW 按钮后的操作

php - 如何让 Wordpress 以 Markdown 格式保存评论?

wordpress - 使用 XAMPP 重定向到安装页面的现有 Wordpress 站点的本地安装

php - SMTP 服务器响应 : 550 5. 7.1 无法中继 - 将电子邮件发送到非公司地址

php - 如何在 WordPress 中保护 $_POST 提交

Wordpress - 将前端的 TinyMCE 添加到 jQuery UI 小部件中