我想在wordpress中创建自定义登录系统。这样就要求输入用户名和密码。但这并不能使用给定的密码对用户进行身份验证,因为它与存储在db中的密码(以散列形式)不同。
用户提供的输入
用户名:admin和密码:pass1q @。// aa
存储在数据库中的哈希密码
$ P $ BY.HywWHy.bpgmBZzyV6RGxG / m6.3u /
这是我用于验证的代码
$password_hashed = '$P$BY.HywWHy.bpgmBZzyV6RGxG/m6.3u/';
$plain_password = 'pass1q@.//aa';
if($wp_check_password($plain_password, $password_hashed)) {
echo "YES, Matched";
} else {
echo "No, Wrong Password";
}
有人可以帮助我吗?感谢您寻求开发者社区的积极回应。
答案 0 :(得分:1)
https://developer.wordpress.org/reference/functions/wp_check_password/
从函数调用中删除$。
也不要忘记添加用户ID
$user = get_user_by( 'login', $username );
if ( $user && wp_check_password( $pass, $user->data->user_pass, $user->ID) )
echo "That's it";
else
echo "Nope";