Uvod v JWT: JSON spletni žeton (JWT) je odprt standard (RFC 7519), ki opredeljuje kompakten in samostojen način varnega prenosa informacij med strankami v JSON objektih. Te informacije je mogoče preveriti in zaupati z digitalnimi podpisi. JWT-je je mogoče podpisati z uporabo skrivnosti (z uporabo algoritma HMAC) ali z uporabo parov javnega/zasebnega ključa RSA.
Nekateri primeri, kjer so JSON spletni žetoni uporabni:
Preverjanje identitete:To je najpogostejši primer uporabe JWT-jev. Ko se uporabnik prijavi, bo vsaka naslednja zahteva vsebovala JWT, ki uporabniku omogoča dostop do poti, storitev in virov, ki jih dovoljuje ta žeton. Enotna prijava je funkcija, ki se danes široko uporablja zaradi nizkega obremenitve in enostavne uporabe na različnih področjih.
Izmenjava informacij:JSON spletni žetoni so odličen način za varen prenos informacij med stranmi. Ker je mogoče JWT-je podpisati – na primer z javno/zasebnimi ključi, je mogoče biti prepričan, da je pošiljatelj tisti, za katerega se izdaja. Poleg tega, ker se podpis izračuna z glavami in vsebinami, lahko preverite tudi, da vsebina ni bila spremenjena.
Uradna spletna stran:Prijava do hiperpovezave je vidna.
Analizirajte informacije JWT na spletu:Prijava do hiperpovezave je vidna.
Analizirajte parametre JWT na spletu Prijava do hiperpovezave je vidna.
Moje razumevanje JWT spodaj je napačno, prosim, dajte mi kakšen nasvet
Najprej, ta naprava ni priporočljiva, da jo uporabljate na spletni strani MVC, lahko jo uporabljate na Webapi, pozicioniranje te naprave je API, ne seja nadomestne spletne strani!
asp.net vodič za uporabo webAPI-ja:Prijava do hiperpovezave je vidna.Kolesa ne bom pretvarjal, gledati, kaj je napisano v tem članku, je v redu.
Sestava JWT
JWT je sestavljen iz treh delov: Glava, Vsebina in Podpis, vmes pa pikaste simbole, ki tvorijo obliko xx.yy.zz.
Upoštevajte, da lahko za podpisane žetone te informacije prebere kdorkoli, kljub zaščiti pred posegom. V veljavne vsebinske ali glavne elemente JWT ne vnašajte občutljivih informacij, razen če so šifrirani.
Na primer:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [podpis] Preprosto povedano, vsakdo lahko ta žeton dešifrira, vendar pristnosti teh podatkov ni mogoče preveriti, pristnost lahko potrdi le strežnik, ki je ta žeton ustvaril, zato v njem ne shranjujte občutljivih informacij.
Tu je težava, in sicer, če uporabnik spremeni geslo ali mu je prepovedano prijavljanje, kako lahko JWT reši veljavnost žetona?
Moja lastna ideja je, da v razdelek Payload dodam niz podoben guid-u, ki nato obstaja v predpomnilniku; ko preverjam identiteto uporabnika, ne samo preverimo jwt, ampak tudi informacije o Payload v jwt, veljavnost lahko nadzorujemo z nadzorom predpomnilnika.
|