2016-05-09 2 views
1

Ich habe versucht, JWT (JsonWebToken) in Node Express durch Mongodb zu implementieren. In der Zeit des Generierens des Tokens speichere ich den Token-Wert in der Datenbanksammlung und lade das Token von mongodb und übergebe es an die nächsten Seiten. Außerdem setze ich eine Abmeldeoption. Wenn ich die Abmeldung auslöst, wird das Tokenfeld in der Datenbank geleert danach werden keine weiteren Aktionen ausgeführt. Aber das Problem ist, wenn mehr als ein Benutzer in der Anwendung angemeldet ist, ist es nicht möglich.Wenn ich auf Logout geklickt hat, löscht es alle Token. Wie kann ich das richtig lösen ..?Wie zu speichern Json Web Token in mongodb mit Knoten Express

+0

, wie Sie das Token speichern Sie? extra Sammlung? oder an die Benutzersammlung angehängt? – CFrei

+0

Verwendet eine zusätzliche Sammlung namens Authentifizierung. – jicks

+0

Das Speichern von JWTs in einer Datenbank scheint ihren Zweck etwas zu vereiteln. Es klingt für mich so, als würden Sie sie als Session-Token verwenden. – robertklep

Antwort

0

Sie können es in den Cookies/Session speichern. Und wenn Sie sich abmelden, können Sie diese Werte löschen. Sollte den Trick machen. Kommentar: Dieser Trick funktioniert gut, wenn Sie keine App für Mobiltelefone entwickeln. Der Benutzer sollte sich von allen Geräten abmelden können, sobald er auf die Abmeldeschaltfläche geklickt hat, wie Facebook fragt, bevor er sich abmeldet. Jeder Benutzer würde seine eigene user_id und sein eigenes Token haben (Sie können die Ablaufzeit wie gewünscht einstellen), also nehmen Sie beim Flush die user_id und spülen Sie dieses bestimmte Token. aber nur nach der Authentifizierung

1

Einfach die req.session.token, von token = jwt.sign();

vorbei.

Und beim Abmelden können Sie tatsächlich delete req.session.token

Verwandte Themen