Kigeuzi cha Bure

Ishara ya JWT Avkodare

Simbua kichwa cha JWT (JSON Web Token) na upakie papo hapo kwenye kivinjari chako. Bure, ya faragha, na upande wa mteja - hakuna data iliyotumwa kwa seva yoyote.

Kuhusu zana hii

JSON Web Tokens (JWT) ni umbizo fupi, salama la URL kwa ajili ya kutuma madai kati ya pande mbili, iliyofafanuliwa na RFC 7519. JWT ni sehemu tatu zilizosimbwa za base64url zinazotenganishwa kwa nukta: kichwa (algorithm na aina ya tokeni), mzigo wa malipo (madai), na saini (uthibitisho wa uhalisi wa uhalisi). Kijajuu na upakiaji ni JSON, base64url-imesimbwa kwa usalama wa URL; sahihi hutumia mojawapo ya kanuni kadhaa (HS256, RS256, ES256, na nyinginezo) juu ya kichwa kilichosimbwa na mzigo wa malipo.

Kusimbua JWT - kuigawanya katika sehemu na kuweka msingi64 kila moja - hakuhitaji siri yoyote. Mtu yeyote aliye na maandishi ya tokeni anaweza kusoma kichwa na mzigo wake wa malipo. Sahihi, hata hivyo, inaweza tu kuthibitishwa kwa siri (HMAC) au ufunguo wa umma (asymmetric). Kusimbua ni kwa ajili ya ukaguzi; uthibitisho ndio unaothibitisha uhalisi.

Kisimbuaji hiki hugawanya tokeni, kuweka misimbo ya base64 kila sehemu, kuchanganua kichwa na upakiaji kama JSON, na kuonyesha matokeo. Haijaribu uthibitishaji wa sahihi kwa sababu hiyo inahitaji ufunguo wa siri au wa umma, ambao kisimbuzi hakina. Toleo lililobainishwa ni ukaguzi wa kusoma tu - ni muhimu kwa tokeni za utatuzi lakini si mbadala wa uthibitishaji sahihi katika msimbo wa programu.

Kwa nini Usimbue JWTs

Utatuzi wa masuala ya uthibitishaji karibu kila mara huhusisha ukaguzi wa tokeni. Tokeni inayoonekana kuwa halali katika msimbo inaweza kuwa na madai yasiyo sahihi, algoriti isiyotarajiwa, muhuri wa muda ulioisha muda wake, au kutolingana kwa hadhira. Kusimbua tokeni kunaonyesha kile ambacho mtoaji alitoa.

Kukagua ishara wakati wa kazi ya ujumuishaji pia husaidia. Unapounganishwa na API ya mtu mwingine au mtoa huduma za kitambulisho, majina halisi ya madai, fomati na muundo hueleweka vyema zaidi kwa kupanga tokeni za sampuli badala ya kutegemea hati ambazo huenda zimepitwa na wakati.

Jinsi ya kutumia

Bandika ishara, pata yaliyomo yaliyochanganuliwa.

  1. Bandika JWT yako: Dondosha tokeni kamili (header.payload.signature) kwenye eneo la kuingiza data. Kisimbuaji hukubali tokeni zenye au bila kiambishi cha hiari cha Mbebaji.
  2. Kagua kichwa: Kijajuu kinaonyesha algorithm ya kusaini (alg) na aina ya ishara (aina). Algorithms ya kawaida ni HS256, RS256, na ES256. Tazama kwa alg: hakuna, ambayo inaashiria tokeni ambayo haijasainiwa na ni nadra kuwa salama katika uzalishaji.
  3. Kagua mzigo: Mzigo wa malipo una madai: iss (mtoaji), ndogo (somo), hadhira (hadhira), mwisho wa matumizi (kuisha), iat (iliyotolewa), na madai yoyote mahususi ya programu. Mihuri ya muda ya kawaida ni sekunde za Unix epoch.
  4. Thibitisha tofauti: Kisimbuaji hakithibitishi saini. Ili kuangalia uhalisi, endesha tokeni kupitia maktaba ya JWT yenye siri inayofaa au ufunguo wa umma katika msimbo wako wa maombi.

Kesi za Matumizi ya Kawaida

Maelezo ya Kiufundi

Umbizo la JWT ni sehemu tatu zilizounganishwa na nukta. Kila sehemu imesimbwa base64url - lahaja-salama ya URL ya base64 inayotumia - na _ badala ya + na /, na pedi huachwa wakati mwingine. Kusimbua kunahitaji kutendua vibadala vilivyo salama vya URL, kuweka sehemu, na usimbaji wa base64.

Kijajuu na upakiaji ni JSON baada ya kusimbua. Sehemu ya sahihi ni ya binary (baiti za saini mbichi) na haiwezi kusomeka na binadamu; inahitaji ufunguo wa uthibitishaji kuwa muhimu.

Madai ya kawaida yamefafanuliwa katika RFC 7519: iss (mtoaji), ndogo (kitambulisho cha somo), aud (hadhira), kuisha (kuisha kwa sekunde za Unix epoch), nbf (sio kabla ya muhuri wa muda), iat (iliyotolewa kwa muhuri wa muda), jti (kitambulisho cha tokeni ya kipekee). Madai mahususi ya programu yanaweza kuonekana na jina lolote.

Mazoea Bora

Maswali yanayoulizwa mara kwa mara

Je, ni salama kubandika JWT yangu hapa?
Ndiyo. Kusimbua hufanyika kabisa katika kivinjari chako - tokeni haitumwi kwa seva yoyote. Hata hivyo, JWTs ni vitambulisho — usizishiriki hadharani (katika picha za skrini, machapisho ya Stack Overflow, n.k.) kwani zinaweza kukupa ufikiaji wa akaunti zako.
Je, chombo hiki kinathibitisha sahihi ya JWT?
Zana hii huamua na kuonyesha yaliyomo kwenye tokeni. Uthibitishaji wa saini unahitaji ufunguo wa siri (HMAC) au ufunguo wa umma (RSA/ECDSA), ambao unapaswa kusalia kwenye seva yako. Zana inaonyesha algoriti iliyotumika lakini haiwezi kuthibitisha bila ufunguo.
Je, madai ya kawaida ya JWT yanamaanisha nini?
iss = mtoaji, ndogo = somo (kitambulisho cha mtumiaji), exp = muda wa mwisho (Unix timestamp), iat = iliyotolewa saa, nbf = si kabla, aud = hadhira, jti = JWT ID. Madai maalum yanaweza kuwa na data yoyote mahususi ya programu.
Kwa nini mtu yeyote anaweza kusimbua JWT?
JWT zimesimbwa, hazijasimbwa. Mzigo wa malipo umesimbwa kwa Base64URL (haujasimbwa), kwa hivyo mtu yeyote anaweza kuusoma. Sahihi inazuia kuchezea, sio kusoma. Usiwahi kuhifadhi data nyeti (nenosiri, SSNs) katika upakiaji wa JWT.
Kwa nini baadhi ya ishara zinakosa saini?
Ishara zilizo na alg: hakuna ambazo hazina saini. Ni JWT halali kulingana na maalum lakini hazitoi hakikisho la uhalisi na hazipaswi kukubaliwa katika uzalishaji.
Je, JWT zimesimbwa kwa njia fiche?
Upakiaji wa kawaida wa JWT hutiwa saini lakini haujasimbwa kwa njia fiche. JWE (Usimbaji fiche wa JSON, RFC 7516) ni umbizo tofauti la tokeni zilizosimbwa kwa njia fiche. JWT nyingi porini ni JWS (zilizotiwa saini pekee).
Je, tokeni yangu imepakiwa kwenye seva?
Hapana. Kusimbua hufanyika katika kivinjari chako; ishara haina kuondoka kwenye kifaa chako.
JWTs huwa na muda gani kwa kawaida?
Mahali popote kutoka kwa wahusika mia chache hadi elfu kadhaa. Urefu unategemea idadi na ukubwa wa madai pamoja na urefu wa saini (ambayo inategemea algoriti).