2013-10-03 17 views
5

Ich versuche etwas mit Wordpress-Passwörter zu tun, die möglicherweise nicht koscher betrachtet werden.Wordpress Passwort zurückgesetzt Haken

Situation:
Grundsätzlich habe ich zwei verschiedene Dienste sowohl mit Kennwörtern. Einer dieser Dienste ist ein einfacher WordPress-Account und einer ist eine andere App, die nichts mit WordPress zu tun hat. Ich möchte Benutzernamen und Passwörter über die beiden synchronisieren, was bedeutet, dass sich bei jeder Änderung eines WordPress-Benutzernamens der Nutzername der App ändert und sich jedes Mal, wenn sich das Wordpress-Passwort ändert, das Passwort der App ändert.

Problem/Frage:
Es gibt mehrere Möglichkeiten, wie ich mit dem Benutzernamen umgehen konnte, aber das Passwort ist das heikel. Ich möchte einen Haken von der Schnittstelle zum Zurücksetzen von WordPress-Kennwörtern ausnutzen, so dass jedes Mal, wenn ein neues Kennwort festgelegt wird, dieses in seiner Klartextform (bevor es zerlegt wird) und an eine API gesendet wird, mit der ich arbeite Hash/Speichern Sie die Passwörter getrennt für diese Nicht-WordPress-App. Gibt es einen Weg, dies zu erreichen?

Alle Aufnahmen zu einer Lösung werden sehr geschätzt.

Antwort

5

Ja, dafür gibt es Haken in /wp-login.php (Passwort zurücksetzen) und /wp-admin/includes/user.php (Passwort ändern auf der Benutzerseite).

# When reseting password in wp-login 
add_action('password_reset', function($user, $pass) 
{ 
    var_dump($pass); 
    die(); 
}, 10, 2); 

und

# When checking if passwords match 
add_action('check_passwords', function($user, $pass1, $pass2) 
{ 
    var_dump($pass1); 
    die(); 
}, 10, 3); 
-1

Sie können versuchen, die validate_password_reset mit Haken Kennwort zu überprüfen. Der folgende Code kann zur Validierung eines alphanumerischen Passworts verwendet werden.

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.',''); 
} 
Verwandte Themen