2016-08-16 2 views
0

Ich habe benutzerdefinierte Anmeldung, Anmeldung und Abmeldung implementiert und ich versuche, das Passwort zurückzusetzen, aber alles, was ich fand, ist, wie Sie eine Reset-Passwort-E-Mail an den Benutzer und nichts nach dem Zurücksetzen des Passworts senden.Aut0 Passwort zurücksetzen

PS: Ich will nicht auth0-Lock oder auth0 Widget

Antwort

2

Wenn Sie aktualisieren mögen ein Kennwort des Benutzers durch den Code verwenden, können Sie dies tun, indem Management API v2 verwenden.

Sie werden mithilfe des PATCH Verb auf diese Ressource zu „aktualisieren“ muss der Benutzer:

https://{account-domain}/api/v2/users/{user-id} 

und einen Körper wie folgt aus:

{ 
    "password" : "new_password", 
    "connection": "the_connection_to_use" 
} 

Sie einen Inhaber Token für diese benötigen , die Sie auf der Management API v2-Dokumentationsseite generieren können.

Ein äquivalenter ROTATION-Befehl (neue Zeilen hinzugefügt, um die Lesbarkeit):

curl -H "Authorization: Bearer {your access token}" 
    -X PATCH 
    -H "Content-Type: application/json" 
    -d '{"password":"new_password","connection":"the_connection_to_use"}' 
    https://{account domain}/api/v2/users/user-id 

Beachten Sie, dass, wenn der Benutzer Ende wird dies auslösen Sie auch einen Mechanismus implementieren sollten die Identität des Benutzers, wie zum Beispiel mit der Validierung Benutzer melden sich zuerst an (wenn sie sich an das alte Passwort erinnern) oder senden eine E-Mail mit einem Link, um den Vorgang zu starten.

+0

dies funktioniert gut für Benutzer angemeldet ist; aber wie man das Passwort für einen Benutzer, der sein Passwort vergessen hat, zurücksetzt – Ayoub

+0

Zwei verschiedene Dinge. Auf der einen Seite haben Sie die "Wie ändere ich ein Benutzerpasswort von einer Anwendung". Sie können dies mit der erwähnten API tun. Ich habe deine Frage darauf bezogen. Auf der anderen Seite haben Sie die "Wie kann ich sicherstellen, dass der Benutzer das Zurücksetzen des Passworts legitim ist". Auth0 verwaltet dies mit einem "Ticket", einer URL, die per E-Mail gesendet wird und es dem Benutzer ermöglicht, das Passwort zu ändern, wenn er dieser URL folgt. Da nur diejenigen mit Zugriff auf die E-Mail diese URL kennen, können Sie sicher sein, dass der Benutzer tatsächlich die E-Mail-Adresse besitzt. Ich bin mir nicht sicher, welchen Teil Sie ändern möchten. –

0

Zum Zurücksetzen des vergessenen Kennworts können Sie die Methode 'changePassword' verwenden, die in der Auth0-Bibliothek verfügbar ist, indem Sie nur die E-Mail-ID übergeben.

Folgendes Snippet ist, wie wir das Passwort (benutzerdefiniert) mit auth0-angular zurücksetzen.

function reset(username){ 
    angularAuth0.changePassword({ 
     connection: 'Username-Password-Authentication', 
     responseType: 'token', 
     email: username, 
    }, callback); 
}