← Dukan kayan aiki

Mai Fassara JWT

Fassara duk wata JSON Web Token a bincikenka. Karanta shugaban, na'urar dauke da bayanai da da'awoyi nan take a gida. Fassarawa ba tabbatarwa ba ce, kuma babu abin da ke barin na'urarka.
Header
Payload

Abin da Mai Fassara JWT Yake Yi Ainihi

JSON Web Token (JWT) yana kama da doguwar, jerin haruffa marasa fahimta na kai tsaye, amma ba a ɓoye shi ba kuma ba wani boyayyen tsari ba ne na sirri. Akwatin taƙaitacce ne, mai amintaccen URL, wanda yake ɗauke da bayanan tsari tsakanin ɓangarori biyu. Manna alamar shaida a cikin mai fassara da ke sama sai ya raba wannan jerin haruffa ya nuna maka ainihin JSON ɗin da ke ciki — bayanan bayanai (metadata), da'awar (claims), wanda alamar take wa, da lokacin da za ta ƙare. Komai yana faruwa ne kai tsaye a cikin burauzarka. Ba a taɓa tura alamar zuwa wata sabar ba, a rubuta ta, ko a aike da ita zuwa ko'ina, wanda yake da matukar muhimmanci idan abin da kake dubawa shaida ce ta zaman aiki mai gudana.

JSON Web Token yana rabuwa zuwa sassa uku masu haske na Base64url: kai, ɗauka, da sa hannu
Jerin haruffa guda ɗaya mai ɗigo-ɗigo, sassa uku daban: kai (header), ɗauka (payload), da sa hannu (signature).

Sassa Uku, Ɗigogi Biyu

Kowace JWT mai kyakkyawan tsari jerin haruffa uku ne da aka sarrafa da Base64url, an haɗa su da ɗigogi: header.payload.signature. Wannan haruffar ɗigo guda ɗaya ce take gaya wa masu nazari inda wani sashi ya ƙare kuma na gaba ya fara, kuma shi ne dalilin da ya sa ake ƙin alamar shaida mai lambar ɗigogi da ba daidai ba tun kafin a karanta wani abu.

Kai (header) wani ƙaramin abu ne na JSON wanda yake bayyana alamar shaida da kanta. Kusan koyaushe yana ɗauke da typ (nau'in, yawanci JWT) da alg — algorithm ɗin sa hannu, kamar HS256 (HMAC tare da SHA-256) ko RS256 (RSA tare da SHA-256). Kai yana gaya wa mai tabbatarwa ainihin yadda aka samar da sa hannun.

Ɗauka (payload) shi ne sashin da mafi yawan mutane suke damuwa da shi. Wani abu ne na JSON mai ɗauke da da'awa (claims) — bayanai game da mai amfani da alamar shaida. Ƙa'idar tana rarraba da'awa zuwa waɗanda aka yi rijista da su (sunaye na yau da kullum, na musamman), na jama'a, da na sirri (sunaye na musamman da ka ƙirƙira domin manhajarka). Fassara ɗaukar shi ne yake bayyana wanda ke shiga, wace matsayi yake da ita, da lokacin da zaman aikinsa zai ƙare.

Sa hannu (signature) shi ne hatimin sirri. Ana ƙididdige shi bisa kai da ɗauka da aka sarrafa ta amfani da algorithm daga kai tare da wani sirri ko makullin sirri. Domin yana rufe sassa biyu na daban, duk wani canji ga kai ko ɗauka — ko da harafi guda — yana raba ingancin sa hannun.

Da'awar Da Za Ka Fi Gani

Da'awar da aka yi rijista da su gajerun sunaye ne na haruffa uku da RFC 7519 ta bayyana domin tsarukan daban-daban su iya haɗin kai. Wasu kaɗan suna bayyana kusan ko'ina:

  • issmai bayarwa: wanda ya ƙirƙiri alamar shaida (sabar tabbatarwar ka ko mai bada shaida).
  • subbatun: wanda alamar take wa, yawanci lambar ganewar mai amfani mai daidaito.
  • audmasu sauraro: wanda aka niyyar alamar take zuwa gare shi. Wata API ya kamata ta ƙi alamun shaida da masu sauraronsu ba ita kanta ba ne.
  • explokacin ƙarewa: alamar Unix da bayan ta ba za a karɓi alamar shaida ba.
  • iatan bayar a: alamar Unix na lokacin da aka ƙirƙiri alamar shaida.

Za ka iya kuma haɗu da nbf (ba kafin) da jti (lambar ganewa ta musamman). Alamomin lokaci sakanni ne tun daga 1970 a UTC, wanda shi ne dalilin da ya sa mai fassara da yake nuna su a matsayin kwanaki masu karantuwa yake tseratar da maka lissafin tunani na duba ko alamar shaida ta riga ta ƙare.

Fassarawa Ba Tabbatarwa Ba Ce — Wannan Shi Ne Sashin Da Yake Kama Mutane

Wannan bambanci shi ne mafi muhimmancin abu guda ɗaya da za ka fahimta game da JWT. Fassarawa tana nufin karanta abin da ke ciki: ba ta buƙatar wani makulli kuma duk wanda ke da alamar shaida zai iya yin hakan, domin Base64url sarrafawa ce, ba ɓoyewa ba. Tabbatarwa tana nufin tabbatar da alamar shaida gaskiya ce kuma ba a taɓa ta ba — sake ƙididdige sa hannun da daidai sirri ko makullin jama'a sannan a tabbatar ya dace.

Wannan kayan aikin yana fassarawa ne kawai. Yana nuna maka abin da alamar shaida take faɗi, ba ko alamar shaida ce amintacciya ba. Wata alamar shaida za ta iya zama ta ƙarya, ta ƙare, ko aka sake amfani da ita amma har yanzu ta fassara zuwa JSON mai kyawawan halaye. Kada ka taɓa yanke shawarar izini bisa da'awar da aka fassara kaɗai. A cikin aikin gaske kana tabbatar da sa hannu a gefen sabar, ka duba exp, kuma ka tabbatar iss da aud sun dace da abin da kake tsammani — ta amfani da laburare mai tabbatacce, ba wai kwatancen jerin haruffa da hannu ba.

Alamar shaida mai haske ana buɗe ta ana duba ta kusa da hatimin sa hannu na zinare wanda yake tabbatar da gaskiyar ta
Kowa yana iya karanta alamar shaida. Wanda ke da makullin kaɗai zai iya tabbatar da ita gaskiya ce.

Ɗauka Ba Wata Ma'ajiyar Sirri Ba Ce

Domin ɗaukar an sarrafa ta ne kawai da Base64url, mai iya karanta ta ne duk wanda ya kama alamar shaida. Ka bi da komai a cikinta a matsayin na jama'a. Kada ka sanya kalmomin sirri, cikakkun lambobin katin bashi, makullan sirri, ko wani bayanin sirri na mutum a cikin da'awar JWT — idan za ka iya fassara shi a nan da danna guda ɗaya, haka ma duk wani wanda ya samu kwafi. Sa hannun yana kare daga gyaggyarawa, ba daga karantawa ba. Idan da gaske kake buƙatar ɓoye abin da ke cikin ɗaukar, wannan aikin JWE ne (alamun shaida da aka ɓoye), wata ƙa'ida dabam gaba ɗaya.

Sirri da Kayan Aiki Masu Alaƙa

Duba wata alamar shaida aiki ne mai mahimmanci, don haka wannan mai fassarar yana gudana gaba ɗaya a gefen mai amfani — nazari kawai JavaScript ne cikin taɓinka kuma babu abin da yake barin injinka. Manna alamar zaman aiki cikin wani kayan aiki mai goyan bayan sabar yana nufin ka bai wa wani ɓangare na uku shaida mai gudana, wanda shi ne ainihin abin da ya kamata ka guje wa. Domin sarrafawa da ke ƙasan komai, duba kayan aikin Base64 namu, kuma ka bincika sauran kayan aikin mai haɓakawa domin ƙarin kayayyakin da suke aiki a na'ura kaɗai.

Tambayoyin da ake yawan yi

Shin an ɓoye JWT?

A'a. JWT na yau da kullum an sarrafa shi da Base64url ne, ba a ɓoye shi ba. Duk wanda ke da alamar shaida zai iya karanta kai da ɗauka. Yi amfani da JWE idan kana buƙatar ɓoye abin da ke ciki.

Shin wannan kayan aikin yana tabbatar da sa hannun?

A'a. Yana fassara ne kawai kuma yana nuna kai da ɗauka. Tabbatar da sa hannu yana buƙatar sirrin mai bayarwa ko makullin jama'a kuma ya kamata a yi shi a sabarka.

Shin yana da aminci in manna alamar shaidata a nan?

Eh. Fassarawa tana gudana gaba ɗaya a cikin burauzarka ta amfani da JavaScript na gida. Ba a taɓa tura alamar shaidar ba, a ajiye ta, ko a aika da ita zuwa wata sabar.

Menene ma'anar iss, sub, aud, exp da iat?

Waɗannan da'awar da aka yi rijista da su ne: mai bayarwa, batun, masu sauraro, lokacin ƙarewa, da lokacin da aka bayar. Guda uku masu alaƙa da lokaci suna amfani da alamomin Unix cikin sakanni.

Zan iya amincewa da da'awar da aka nuna bayan fassarawa?

Ba shi kaɗai ba. Da'awar da aka fassara na iya fitowa daga alamar shaida ta ƙarya ko ta ƙare. Koyaushe tabbatar da sa hannu kuma duba ƙarewa a gefen sabar kafin ka amince da su.

Me ya sa alamar shaidata take da sassa uku aka raba su da ɗigogi?

Waɗannan su ne kai, ɗauka, da sa hannu, kowanne an sarrafa shi da Base64url an haɗa su da ɗigogi. Ɗigogin suna gaya wa masu nazari inda kowane sashi yake farawa da ƙarewa.