2016-07-18 6 views
1

Anwendungen wie „Telegramm“ haben eine „aktive Sitzungen“ -Funktion, in dem Sie Sitzungen des aktuellen Benutzers sehen und töten. Es ist kein Problem, ein ähnliches Feature zu erstellen, wenn Sessions und Cookies zum Speichern von Benutzersitzungen verwendet werden, aber wie wird es mit jwt gemacht?Ist es möglich, Benutzersitzungen zu erhalten, wenn jwt auth verwendet wird?

Der Server tut speichert alle Informationen über jwt können so nicht einmal eine Liste der aktiven Sitzungen erhalten. Ich habe darüber nachgedacht, zusätzliche Informationen in einer Datenbank zu speichern, wenn sich der Benutzer anmeldet, so dass wir Daten wie Gerätename, Typ usw. erhalten und auch Zugriffstoken speichern können. Wenn der Benutzer dann eine bestimmte Sitzung beenden möchte, wird das erforderliche Zugriffstoken irgendwie ungültig.

Was ist ein richtiger Ansatz, um diese Funktion zu machen?

Antwort

2

A JWT ist in sich abgeschlossen und muss nicht Server-Sitzungen, aber in einigen Fällen ist nützlich, einige Informationen auf dem Server über ausgestellte und aktive Token zu erhalten.

Zum Beispiel eine schwarze Liste gesperrter Token gesetzt, nachdem Anmeldeinformationen Benutzer Ändern von Berechtigungen oder einfach eine Abmeldung (Sie nicht vollständig in dem Vertrauen der Kunden können ihre Daten zu entfernen). Es ist nicht erforderlich, das vollständige Token zu speichern, sondern einfach einen eindeutigen Bezeichner zuzuweisen. Und nur Token bis zur Ablaufzeit verfolgen.

Beachten Sie auch in Ihrem Anwendungsfall, das Token können während der Interaktion mit dem Benutzer, so dass alle Daten in Bezug auf Benutzer erneuert werden soll, um das neue Token angebracht werden. Wenn Ihre Token lange Verfallszeit haben, wird persistente benötigt

Ich würde nicht 'Sitzung' nennen, weil es zu einer Verwechslung mit dem traditionellen Ansatz

führen kann
Verwandte Themen