Ich bin relativ neu in jwt.io und der Authentifizierung und verwende JWT.io auf folgende Weise.
Serverseite
Sobald sich der Benutzer anmeldet, generiere ich ein Token mit userid
eingebettetem Inhalt und gebe es an den Benutzer im Nachrichtentext zurück
Client Side Browser / JS Ich speichere das Token in localStorage und übergebe das Token für jede nachfolgende Anforderung in den Headern.
Authorization: Basic someEncryptedValue
Ich habe auch verwendet
X-Auth-Token: someEncryptedValue
Könnte ich dies in einem Cookie verwenden?
Dann überprüfe ich auf der Serverseite das Token anhand des Geheimnisses, überprüfe den Ablauf, hole die ID aus dem Token heraus und bearbeite dann die Anforderung.
Ist in diesem Workflow alles korrekt?
authentication
session
authorization
cookies
user2727195
quelle
quelle
Antworten:
Ihr Workflow ist korrekt (vorausgesetzt, Sie verwenden HTTPS), und ja, Sie können Ihr Token einfach in einem Cookie speichern, anstatt es im Autorisierungsheader zu übergeben.
Ich empfehle nicht, OAuth2 zu verwenden. Die ordnungsgemäße Implementierung selbst des einfachsten Ablaufs würde Ihren Anmeldevorgang erheblich komplexer machen, und es scheint mir, dass Sie ihn nicht benötigen, da Ihre "serverseitigen" Teile alle in derselben Domäne leben.
Wenn ich es wäre, würde ich Cookies verwenden. Das Festhalten an gut verstandenen Schemata lässt weniger Verwirrung stiften und bedeutet, dass der Browser sich um das Senden und Aktualisieren Ihres Cookies kümmert (z. B. überlegen Sie, wie Sie mit Sitzungen mit einer Leerlaufzeit umgehen können).
quelle
Eine gute Lektüre. Es geht darum, Token im lokalen Speicher zu speichern und dann in der http-Anfrage über Javascript zurückzusenden.
: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
quelle
Alle Browser unterstützen jetzt Digest Auth, das auch über HTTP sicher ist. Abhängig von Ihren genauen Anforderungen kann dies ausreichend sein.
quelle