Įvadas į JWT: JSON Web Token (JWT) yra atviras standartas (RFC 7519), apibrėžiantis kompaktišką ir savarankišką būdą saugiai perduoti informaciją tarp šalių JSON objektuose. Šią informaciją galima patikrinti ir pasitikėti skaitmeniniais parašais. JWT gali būti pasirašyti naudojant paslaptis (naudojant HMAC algoritmą) arba naudojant RSA viešųjų / privačių raktų poras.
Kai kurie scenarijai, kai JSON žiniatinklio žetonai yra naudingi:
Tapatybės patvirtinimas:Tai yra dažniausias JWT naudojimo atvejis. Kai vartotojas prisijungs, kiekvienoje paskesnėje užklausoje bus JWT, leidžiantis vartotojui pasiekti maršrutus, paslaugas ir išteklius, kuriuos leidžia tas raktas. Vienkartinė autentifikacija yra funkcija, kuri šiandien plačiai naudojama dėl mažų pridėtinių išlaidų ir galimybės lengvai naudoti įvairiuose domenuose.
Keitimasis informacija:JSON žiniatinklio žetonai yra puikus būdas saugiai perduoti informaciją tarp šalių. Kadangi JWT galima pasirašyti, pavyzdžiui, naudojant viešųjų / privačių raktų poras, galima būti tikriems, kad siuntėjas yra tas, kuo jis teigia esąs. Be to, kadangi parašas apskaičiuojamas naudojant antraštes ir naudingąsias apkrovas, taip pat galite patikrinti, ar turinys nebuvo sugadintas.
Oficiali svetainė:Hipersaito prisijungimas matomas.
Analizuokite JWT informaciją internete:Hipersaito prisijungimas matomas.
Analizuokite JWT parametrus internete Hipersaito prisijungimas matomas.
Mano supratimas apie JWT žemiau yra klaidingas, prašau duoti man keletą patarimų
Visų pirma, šio dalyko nerekomenduojama naudoti MVC svetainėje, galite jį naudoti webapi, šio dalyko pozicionavimas yra API, o ne pakaitinės svetainės sesija!
asp.net WebAPI naudojimo pamoka:Hipersaito prisijungimas matomas.Aš neperdarysiu rato, žiūrint į tai, kas parašyta šiame straipsnyje, yra gerai.
JWT sudėtis
JWT susideda iš trijų dalių: antraštės, naudingosios apkrovos ir parašo, tarp kurių yra taškų simboliai, sudarantys xx.yy.zz formą.
Atminkite, kad pasirašytų žetonų informaciją gali perskaityti bet kas, nepaisant apsaugos nuo klastojimo. Nedėkite neskelbtinos informacijos į galiojantį JWT turinį ar antraštės elementus, nebent ji būtų užšifruota.
Pavyzdžiui:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [parašas] Paprastais žodžiais tariant, kiekvienas gali iššifruoti šį raktą, tačiau šios informacijos autentiškumo patikrinti negalima, tik šį raktą sugeneravęs serveris gali patikrinti autentiškumą, todėl nesaugokite jame neskelbtinos informacijos.
Čia yra problema, tai yra, jei vartotojas pakeičia slaptažodį arba vartotojui draudžiama prisijungti, kaip JWT gali išspręsti žetono galiojimą?
Mano idėja yra pridėti į guid panašią eilutę Payload skyriuje, o tada egzistuoti talpykloje, tikrinant vartotojo tapatybę, ne tik patikrinti jwt, bet ir patikrinti Payload informaciją jwt, mes galime kontroliuoti galiojimą valdydami talpyklą.
|