在WordPress中重置密码后获取新的哈希密码

时间:2018-12-20 18:08:02

标签: wordpress hash passwords reset

用户在WordPress中执行密码重置后,如何获取新密码的哈希值?

我在我的functions.php文件中使用钩子after_password_reset,但是$ user-> user_pass提供了 old 哈希密码值(密码重置之前的哈希密码) ,并且$ new_pass提供新密码的纯文本(不进行散列)。

我不明白为什么$ user-> user_pass提供旧密码,因为在重新设置新密码之后执行挂接。

示例代码:

function action_after_password_reset( $user, $new_pass ) {

    $hashed_old_pass = $user->user_pass; // old hashed password, before password reset

    $unhashed_new_pass = $new_pass; // plain text of new password, unhashed

};
add_action( 'after_password_reset', 'action_after_password_reset', 10, 2 ); 

对我来说,重要的是要获得存储在数据库中的新密码的确切哈希值。我意识到我可以使用wp_hash_password($ new_pass)创建新密码的另一个哈希,但是我想要数据库中的确切哈希值。

1 个答案:

答案 0 :(得分:0)

操作执行时,表中的用户已更新,但是内存中的用户对象未更新。

您应该能够像这样从数据库加载更新的用户对象:

$updated_user = get_user_by('id', $user->ID);
var_dump($updated_user->user_pass);