2016-12-31 3 views
0

Ich habe einen Webdienst, der einen Benutzer authentifiziert, und wenn er erfolgreich ist, gibt er ihnen ein JSON Web Token, mit dem sie ihre Sitzung beibehalten können.
Momentan habe ich nur einen Server, aber ich möchte diesen im Idealfall auf zwei oder mehr aus Gründen der Leistung erhöhen, aber ich bin mir nicht sicher, wie das mit verschiedenen Servern funktionieren wird, da sie unterschiedliche Instanzen haben Wer ist derzeit angemeldet?Wie man Benutzersitzungen über mehrere Server verwaltet?

Zum Beispiel untersucht mein Dienst die JWT der Client zurückgibt, und (vorausgesetzt, es ist ein gutes Token), wird die Benutzer-ID und Sitzung und prüfen, ob ein Benutzer mit diesem angemeldet ist Session-ID.
Wenn jedoch beispielsweise die Middleware vor der Web-Service-Schicht feststellt, dass der Server, zu dem der Benutzer ursprünglich angemeldet war, derzeit nicht verfügbar ist und die Anforderung an eine andere Serverinstanz des Web-Service weiterleitet, wie soll der Authentifizierungs-Controller gemeint sein beurteilen, ob die Anfrage gültig ist?

Unten finden Sie eine sehr einfache Version meines Dienstes, mit den schwarzen Pfeilen für die normale Kommunikation und den roten Pfeilen für die Kommunikation für den Fall, dass Layer 1 entscheidet, die Anfrage an Instance Two weiterzuleiten. Ebene Eins ist im Wesentlichen sehr einfach und führt nicht wirklich etwas anderes aus, als den Datenverkehr zur nächsten Ebene zu leiten, abhängig von der Verfügbarkeit der Ebene zwei Instanzen.

enter image description here

Antwort

0

Einer der wichtigsten Vorteile von JWT ist, dass es nicht den Server-Speicher benötigt, weil es in sich geschlossene und staatenlos ist. Wenn Sie JWT-Server-Sitzungen benötigen, ist es nicht Ihre beste Option, die Authentifizierung zu verwalten. Siehe Stop using JWT for sessions

Derzeit verwenden Anwendungsserver die SESSION ID zum Verwalten des Lastenausgleichs und der Umleitung zum Server, auf dem die Benutzersitzung gespeichert wird, einschließlich persistentem Speicher und Migration der Sitzung. Mit einem JWT profitieren Sie nicht von diesen Eigenschaften.

Verwenden Sie JWT, wenn Sie einen zustandslosen REST-Endpunkt mit Authentifizierung benötigen oder Daten zwischen den Teilnehmern

sicher austauschen müssen
Verwandte Themen