2016-07-17 3 views
5

Welche Ansätze gibt es, um Benutzer über abgelaufene Sitzung in React/Redux-Anwendung zu alarmieren?Wie warne ich, wenn Sitzung (JWT) in React/Redux abgelaufen ist

Der Server authentifiziert Benutzer mit JWT-Token und React weiß wirklich nicht die Existenz solcher Token, Browser behandelt es automatisch. Beim Abrufen und Buchen von Redux werden entweder Daten oder Fehler im Status gesetzt.

Ist der typische Weg, um die Antwort passiv zu prüfen, wenn Sie versuchen, auf den API-Endpunkt zuzugreifen, verwenden Sie das Feld expires, um clientseitige Zeitüberschreitung festzulegen, aktiv die Gültigkeit der Sitzung oder eine andere Technik zu gewährleisten? Ich bin besonders besorgt über die nicht gespeicherten Änderungen, die der Benutzer macht, und möchte den Benutzer so bald wie möglich über die beendete Sitzung informieren.

Antwort

3

Mein aktueller Ansatz ist es, die jwt in der localstorage zu speichern, wenn die Anwendung gestartet wird, ich das Token bin Laden versucht, Benutzerdaten mit dem Token zu laden, wenn es fehlschlägt, leitet es einfach zu/login

Dann Ich benutze den JWT nur im api-Modul, nicht im Laden.

Mein Api-Modul weiß auf Anfragen basiert, wenn das Token zu verwenden, und wenn nicht

Wenn das api Modul eine fehlgeschlagene Authentifizierung erkennt, es beseitigt auch das Token aus dem local .. so dass beim nächsten Mal nicht geladen werden kann .

Mein API-Modul, das auch von redux getrennt ist, weiß, wann und wann jwt verwendet werden soll.

Um diese Arbeit abstraktere mache ich eine Middleware erstellt haben, die auf jede Aktion reagiert, wenn die Nutzlast ein error und der Wert ist Not Authenticated

dies der Fehler ich im api Modul am trowing, wenn die Serverantwort schlägt aufgrund von Authentifizierung fehl. Die actionCreator sendet nur den Fehler in catch und die Middleware reagiert darauf.

Also eigentlich ist es an Ihnen, wie es geht, der ganze Code, über den ich spreche ist ~ 100 LOC oder so .. nur einige Methoden, die diese Dinge handhaben.

+1

Viele Leute, ich würde vermuten, verwenden den gleichen Middleware-Mechanismus für Auth, könnte helfen, wenn Sie zeigten, wie deins aussieht. – Himmel

Verwandte Themen