Ievads JWT: JSON Web Token (JWT) ir atvērts standarts (RFC 7519), kas definē kompaktu un autonomu veidu, kā droši pārsūtīt informāciju starp pusēm JSON objektos. Šo informāciju var pārbaudīt un uzticēties, izmantojot ciparparakstus. JWT var parakstīt, izmantojot noslēpumus (izmantojot HMAC algoritmu) vai izmantojot RSA publisko/privāto atslēgu pārus.
Daži scenāriji, kuros JSON tīmekļa marķieri ir noderīgi:
Identitātes pārbaude:Šis ir visizplatītākais JWT izmantošanas gadījums. Kad lietotājs ir pieteicies, katrā nākamajā pieprasījumā būs JWT, kas ļauj lietotājam piekļūt maršrutiem, pakalpojumiem un resursiem, ko atļauj šis marķieris. Vienotā pierakstīšanās ir funkcija, kas mūsdienās tiek plaši izmantota, jo tā ir zema pieskaitāmā un viegli izmantojama dažādos domēnos.
Informācijas apmaiņa:JSON tīmekļa marķieri ir lielisks veids, kā droši pārsūtīt informāciju starp pusēm. Tā kā JWT var parakstīt, piemēram, izmantojot publisko/privāto atslēgu pārus, ir iespējams būt pārliecinātiem, ka sūtītājs ir tas, par ko viņš apgalvo. Turklāt, tā kā paraksts tiek aprēķināts, izmantojot galvenes un derīgās slodzes, varat arī pārbaudīt, vai saturs nav manipulēts.
Oficiālā mājas lapa:Hipersaites pieteikšanās ir redzama.
Parsēt JWT informāciju tiešsaistē:Hipersaites pieteikšanās ir redzama.
JWT parametru analīze tiešsaistē Hipersaites pieteikšanās ir redzama.
Mana izpratne par JWT zemāk ir nepareiza, lūdzu, dodiet man padomu
Pirmkārt, šī lieta, jums nav ieteicams to izmantot MVC vietnē, jūs varat to izmantot webapi, šīs lietas pozicionēšana ir API, nevis aizstājējvietnes sesija!
asp.net WebAPI lietošanas apmācība:Hipersaites pieteikšanās ir redzama.Es nepārtaisīšu riteni, aplūkojot to, kas ir rakstīts šajā rakstā, ir labi.
JWT sastāvs
JWT sastāv no trim daļām: galvenes, lietderīgās slodzes un paraksta, ar punktu simboliem, lai veidotu xx.yy.zz formu.
Ņemiet vērā, ka parakstītiem marķieriem šo informāciju var izlasīt ikviens, neskatoties uz aizsardzību pret viltojumiem. Neievietojiet sensitīvu informāciju derīgā JWT saturā vai galvenes elementos, ja vien tā nav šifrēta.
Piemēram:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [paraksts] Nespeciālistu izteiksmē ikviens var atšifrēt šo marķieri, bet šīs informācijas autentiskumu nevar pārbaudīt, tikai serveris, kas ģenerēja šo marķieri, var pārbaudīt autentiskumu, tāpēc neuzglabājiet tajā sensitīvu informāciju.
Šeit ir problēma, tas ir, ja lietotājs maina paroli vai lietotājam ir aizliegts pieteikties, kā JWT var atrisināt marķiera derīgumu?
Mana ideja ir pievienot guid-līdzīgu virkni sadaļā Payload, un pēc tam pastāvēt kešatmiņā, pārbaudot lietotāja identitāti, ne tikai pārbaudīt jwt, bet arī pārbaudīt Payload informāciju jwt, mēs varam kontrolēt derīgumu, kontrolējot kešatmiņu.
|