2016-07-29 40 views
0

Ich benutze Bearer-Token-Basis-Authentifizierung. Wenn ein Benutzer sich zu diesem Zeitpunkt an einem System anmeldet, wird ein Flag auf TRUE gesetzt und in der Datenbank gespeichert. Und wenn er sich abmeldet, wird das Flag auf false gesetzt.Authentifizierung Bearer-Token-Problem?

Aber, weil ich Token-Basis-Authentifizierung verwenden, so kommt das Problem, wenn ein Benutzer Cookies aus dem Browser entfernt. Wenn er jetzt die Cookies löscht, dann ist meine Flagge nicht auf false gesetzt.

Hier bin ich mit Angularjs, Node.js und MongoDB

+0

Sie verwenden das Flag also hauptsächlich, um zu überprüfen, ob der Benutzer angemeldet ist oder nicht? –

+0

Was das Cookie enthält, erklären Sie bitte das Problem klar, wie das Problem verursacht wird, wenn Benutzer löscht (was die db -Eigenschaft nicht auf false setzt) ​​ –

+0

@Ramesh es enthält alle Authentifizierungsdaten wie benutzerbezogene Informationen und Flag, die ich Legen Sie beim Anmelden und Abmelden wahr und falsch fest. –

Antwort

0

Also, wenn das Cookie im Browser dann gelöscht gibt es keine Möglichkeit, die entsprechende Datenbankeintrag für den Benutzer identifizieren kann, wenn die Anfrage kommt

.

So benötigen Sie einen cron oder etwas laufen, um in regelmäßigen Abständen zu löschen, die unerwünschten (abgelaufen) Einheiten aus der Datenbank, dh

Zusammen mit der Flagge, müssen Sie auch dateAdded Eigentum oder (lastModified haben je nachdem, was funktioniert für Sie), dann müssen Sie cron ausführen und alle Entitäten löschen, die lange zurück oder basierend darauf erstellt wurden Ablaufzeit des Zugriffstokens.

Stellen Sie sicher, dass der Bezeichner, den Sie in Cookie speichern, zufällig ist, so dass die Datenbankentität einige Zeit im Leerlauf verbleibt, bis sie gelöscht wird, aber von niemandem verwendet werden kann.