Einführung in JWT: JSON Web Token (JWT) ist ein offener Standard (RFC 7519), der eine kompakte und in sich geschlossene Methode definiert, Informationen sicher zwischen Parteien in JSON-Objekten zu übertragen. Diese Informationen können durch digitale Unterschriften überprüft und vertrauenswürdig gemacht werden. JWTs können mit Secrets (mit dem HMAC-Algorithmus) oder mit den öffentlichen und privaten Schlüsselpaaren von RSA signiert werden.
Einige Szenarien, in denen JSON Web Tokens nützlich sind:
Identitätsverifizierung:Dies ist der häufigste Fall bei der Verwendung von JWTs. Sobald der Benutzer sich einloggt, enthält jede nachfolgende Anfrage ein JWT, das es dem Benutzer ermöglicht, auf die von diesem Token erlaubten Routen, Dienste und Ressourcen zuzugreifen. Single Sign-on ist heute eine Funktion, die aufgrund ihres geringen Overheads und der einfachen Nutzung in verschiedenen Domänen weit verbreitet ist.
Informationsaustausch:JSON Web Tokens sind eine großartige Möglichkeit, Informationen sicher zwischen Parteien zu übertragen. Da JWTs signiert werden können – zum Beispiel mit öffentlichen und privaten Schlüsselpaaren –, kann man sicher sein, dass der Absender der ist, der er vorgibt zu sein. Außerdem können Sie, da die Signatur mit Headern und Payloads berechnet wird, auch überprüfen, ob der Inhalt nicht manipuliert wurde.
Offizielle Website:Der Hyperlink-Login ist sichtbar.
Parse JWT-Informationen online:Der Hyperlink-Login ist sichtbar.
JWT-Parameter online analysieren Der Hyperlink-Login ist sichtbar.
Mein Verständnis von JWT unten ist falsch, bitte gebt mir einen Rat
Erstens, dieses Ding wird nicht empfohlen, es auf der MVC-Website zu verwenden, du kannst es in der WebAPI verwenden, die Positionierung dieses Dings ist API, nicht eine Sitzung der Ersatzwebsite!
asp.net Webapi-Nutzungstutorial:Der Hyperlink-Login ist sichtbar.Ich werde das Rad nicht neu machen, aber es ist in Ordnung, sich anzusehen, was in diesem Artikel geschrieben ist.
Die Zusammensetzung von JWT
JWT besteht aus drei Teilen: Header, Payload und Signature, mit Punktsymbolen dazwischen, um die Form von xx.yy.zz zu bilden.
Beachten Sie, dass bei signierten Token diese Informationen von jedem gelesen werden können, trotz Manipulationsschutz. Fügen Sie keine sensiblen Informationen in die gültigen Inhalte oder Header-Elemente des JWT ein, es sei denn, sie sind verschlüsselt.
Zum Beispiel:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [Unterschrift] Laienausgedrückt kann jeder dieses Token entschlüsseln, aber die Echtheit dieser Informationen kann nicht überprüft werden, nur der Server, der dieses Token erstellt hat, kann die Echtheit überprüfen, daher sollten Sie keine sensiblen Informationen darin speichern.
Es gibt hier ein Problem, nämlich: Wenn der Nutzer das Passwort ändert oder der Nutzer daran gehindert ist, sich einzuloggen, wie kann JWT dann die Gültigkeit des Tokens lösen?
Meine eigene Idee ist, eine guid-ähnliche Zeichenkette im Payload-Bereich hinzuzufügen und dann im Cache zu existieren; wenn wir die Identität des Benutzers überprüfen, nicht nur die jwt, sondern auch die Payload-Informationen im jwt überprüfen, können wir die Gültigkeit steuern, indem wir den Cache steuern.
|