2015-09-25 22 views
11

Ich benutze Laravel 5 und eckige js und JWT Authentifizierung für die Protokollierung und Registrierung meiner Benutzer. Aber es gibt nichts, das erwähnt wird, um Benutzern mit Erinnerungsfunktion zu erleichtern und Benutzern auch zu erlauben, Kennwort zurückzusetzen, wenn vergessenes Kennwort.Benutzer merken und Passwort vergessen Funktionalität in Laravel 5.1 und Angular JS (JWT Authentifizierung)

Ich recherchierte viel und fand nicht genau, was ich brauche, obwohl die Antwort im folgenden Link hilfreich, aber für mich unangemessen ist fortzufahren. Laravel 5 Password Reset with Angular View

Bitte geben Sie alle Informationen und Links, die hilfreich wären. Vielen Dank im Voraus! :)

+0

Passwort Rests kommen in einer großen Vielfalt, können Sie genauer sein, was war unzureichend über die Frage, die Sie verknüpft, so dass wir genauer mit Antworten sein können. – Alex

Antwort

4

Um aus einer JWT-Perspektive zu antworten.

Remember me fragt im Wesentlichen den Benutzer, wie lange sie sich anmelden möchten. Abhängig von den Sicherheitsanforderungen und typischen Nutzungsmustern Ihrer Benutzer sind kurze Sitzungen oft von 15 Minuten bis zu einer Browsersitzung. Lange Sitzungen (Auswahl von Remember me) können von 24 Stunden bis zu einem Jahr dauern.

Der JWT-Aussteller kann den Exp-Anspruch (Ablaufzeit des Tokens) abhängig von der Auswahl des Kontrollkästchens "Remember Me" durch den Benutzer unterschiedlich festlegen.

Wenn Sie beabsichtigen, dass "Remember Me" länger als eine einzelne Browsersitzung dauert, ist es am einfachsten, das Token in einem Cookie zu speichern. Das bedeutet, dass für den Cookie auch die folgenden Eigenschaften festgelegt werden müssen: httponly, secure und expires (mit derselben Ablaufzeit wie der Exp-Anspruch aus dem Token).

Zurück Passwort Implementierungen kommen in vielen Formen und Größen je nach Ihren Anforderungen. Diese stehen nicht in direktem Zusammenhang mit JWTs, da sie kommen, bevor der JWT-Aussteller ein Token ausstellt.

+0

Danke für die Antwort @Alex. –

1

Sie fragen nach etwas, das speziell für Ihren Fall behandelt werden muss. Die meisten "Remember Me" -Systeme funktionieren (einschließlich Laravel) über das Speichern eines Cookies auf dem Gerät des Benutzers. Dieser Cookie wird dann verwendet, um sich automatisch zu authentifizieren, wenn der Benutzer zurückkehrt. JWT ist anders, da Ihnen anstelle eines Cookies ein Token zugewiesen wird, das Sie in einer Kopfzeile an den Server zurückgeben. Sie sind im Wesentlichen Zeichenfolgen aus Buchstaben und Zahlen, aber Sie müssen das JWT-Token speziell im Browser des Benutzers speichern, um sich eine Art "Erinnerung an mich" -Funktionalität zu merken. Sie können dies in der Angular App mit localStorage oder einer anderen ähnlichen Front-End-Praxis tun.

Für das vergessene Passwort können Sie die gleichen Formularfelder senden, die standardmäßig für Laravel verwendet werden, und einfach überschreiben, wie der PasswordController die Antwort zurückgibt. In diesem Fall benötigen Sie eine JSON-Antwort anstelle einer Weiterleitung.

+0

Danke für die Antwort @Adam –