Passwords Wordpress密码重置挂钩

Passwords Wordpress密码重置挂钩,passwords,wordpress,hook,Passwords,Wordpress,Hook,我正在尝试使用wordpress密码做一些事情,这些密码可能被认为是或不被认为是犹太的 情况: 基本上我有两个不同的服务都需要密码。其中一个服务是一个简单的wordpress帐户,另一个是另一个应用程序,与wordpress无关。我想在两者之间同步用户名和密码,这意味着每次wordpress用户名更改时,应用程序的用户名都会更改,每次wordpress密码更改时,应用程序的密码都会更改 问题/问题: 有几种方法可以处理用户名,但密码是一个棘手的问题。我想利用wordpress密码重置界面中的一个

我正在尝试使用wordpress密码做一些事情,这些密码可能被认为是或不被认为是犹太的

情况:
基本上我有两个不同的服务都需要密码。其中一个服务是一个简单的wordpress帐户,另一个是另一个应用程序,与wordpress无关。我想在两者之间同步用户名和密码,这意味着每次wordpress用户名更改时,应用程序的用户名都会更改,每次wordpress密码更改时,应用程序的密码都会更改

问题/问题:
有几种方法可以处理用户名,但密码是一个棘手的问题。我想利用wordpress密码重置界面中的一个钩子,以便在任何时候设置新密码时,它都会以纯文本形式(在散列之前)获取密码,并将其发送到一个API,我正在使用该API为这个非wordpress应用程序分别散列/存储密码。有没有办法做到这一点


非常感谢对解决方案的任何尝试。

是的,在
/wp login.php
(密码重置)和
/wp admin/includes/user.php
(用户页面中的密码更改)中有相应的钩子


您可以尝试使用“验证密码”重设来验证密码。 以下代码可用于验证字母数字密码

add_action('validate_password_reset','wdm_validate_password_reset',10,2);

function wdm_validate_password_reset( $errors, $user)
{
    $exp = '/^(?=.*\d)((?=.*[a-z])|(?=.*[A-Z])).{6,32}$/';

    if(strlen($_POST['pass1'])<6 || !preg_match($exp, $_POST['pass1']) )
           $errors->add( 'error',  'Password must be alphanumeric and contain minimum 6 characters.','');
}
add_action('validate_password_reset','wdm_validate_password_reset',10,2);
功能wdm\u验证\u密码\u重置($errors,$user)
{
$exp='/^(?=.*\d)((?=.[a-z])|(?=.[a-z]))。{6,32}$/';
如果(strlen($_POST['pass1'])添加('error','pass必须是字母数字,并且至少包含6个字符','');
}

我知道,这个Q已经有很多年了,但是你是怎么做到的?你的“建议解决方案”看起来很容易被利用来获取用户密码,因此我很好奇你是怎么做到的。也许你“在传输中”加密了密码还是什么?@Athoxx它有点黑客行为,但我记得,我可以访问数据库的后端其他应用程序,所以我在将密码发送到API之前对其进行了加密,然后在其他应用程序收到该参数后对其进行解密。
# When checking if passwords match
add_action( 'check_passwords', function( $user, $pass1, $pass2 ) 
{
    var_dump( $pass1 );
    die();
}, 10, 3 );
add_action('validate_password_reset','wdm_validate_password_reset',10,2);

function wdm_validate_password_reset( $errors, $user)
{
    $exp = '/^(?=.*\d)((?=.*[a-z])|(?=.*[A-Z])).{6,32}$/';

    if(strlen($_POST['pass1'])<6 || !preg_match($exp, $_POST['pass1']) )
           $errors->add( 'error',  'Password must be alphanumeric and contain minimum 6 characters.','');
}