是否可以在wp_GENERATE_PASSWORD()之后显示新生成的密码?

时间:2016-01-19 作者:bestprogrammerintheworld

$np = wp_generate_password();       
wp_set_password( $np, $user_id );
$messagetouser = \'Reset succeeeded. The new password is: \' . $np;
上述代码是resetpassword功能的一部分。以上代码都可以工作,但如何实现向用户显示新密码?(现在的密码显示是db生成和使用的密码?)

这可能不可能?我想不是。。。

但在什么情况下你需要wp_generate_password() 然后

1 个回复
SO网友:jgraup

默认情况下,当用户提交password reset 从…起wp-login.php, reset_password 被调用。在里面user.php, reset_password() 触发password_reset 在设置前可以看到纯文本版本的挂钩。同样适用于after_password_reset.

add_action( \'password_reset\', \'my_password_reset\', 10, 2 );

function my_password_reset( $user, $new_pass ) {
    // Do something before password reset.
}
wp_set_password() 立即运行wp_hash_password() 并作为加密文本输入数据库。上面的钩子是您最后一次看到密码的纯文本版本。

function wp_hash_password($password) {
    global $wp_hasher;

    if ( empty($wp_hasher) ) {
        require_once( ABSPATH . WPINC . \'/class-phpass.php\');
        // By default, use the portable hash from phpass
        $wp_hasher = new PasswordHash(8, true);
    }

    return $wp_hasher->HashPassword( trim( $password ) );
}
操作完成后login_header 设置为“您的密码已重置”。

如您所见,使用wp_get_current_user()get_user_by() 稍后将仅显示加密版本。

$user = wp_get_current_user();
echo $user->data->user_pass;

$user = get_user_by (\'id\', 1 );
echo $user->data->user_pass;
如果要使用编写自定义函数wp_generate_password() 然后由您决定如何向用户显示纯文本版本,就像wp-login.php

相关推荐

是否有必要清理wp_set_password用户输入?

我正在尝试向WP注册表添加密码表单。请参见下面的代码。我想知道是否需要清理这个特定的用户输入?(如果是,怎么做?)如果我理解正确,WP为某些东西内置了净化功能,密码可能就是其中之一。对吗?WP会在将其添加到数据库之前自动对其进行清理吗?add_action( \'register_new_user\', \'registration_change_pass\', 10, 99 ); function registration_change_pass( $user_id ) { &