Furfuraha JWT oo Bilaash ah

Furfur oo baadh JSON Web Token kasta. Arag madaxa, xogta, dhicitaanka, iyo dacwooyinka caadiga ah. Dhammaan waxa si gudaha ah ku socda browser-kaaga β€” tokens-ku weligood kama baxaan qalabkaaga.

Wuu shaqeeyaa oflaayn marka la shubo

πŸ”’ Token-ka gebi ahaanba waxaa lagu kala fasaxaa browser-kaaga. Waxba looma diro server kasta.

Sida Ay U Shaqeyso

Furihu waa falanqeeye gacan lagu qoray oo eber-ku-tiirsanaan ah oo gebi ahaanba ka shaqeeya biraawsarkaaga: wuxuu ku kala jaraa sumadda dhibcaha, wuxuu u beddelaa qayb Base64URL kasta Base64 caadi ah isagoo isticmaalaya beddel xarig ah wuxuuna ku buul-sareeyaa maalgelin afar leh, kadibna wuxuu wacaa atob() iyo JSON.parse ee biraawsarka dabiiciga ah si uu u soo celiyo shayaasha madaxa iyo payload-ka. Xaqiijinta sumadda ee ikhtiyaarka ah waxay isticmaashaa API-ga Web Crypto (crypto.subtle.verify) β€” laybreri, server midna ma jiraan.

  1. 1
    Furitaanka Base64URL
    Qalabku wuxuu ku kala jaraa JWT-ga labada calaamadood ee dhibcaha, taasoo bixisa saddex qayb. Qayb kastaa waa Base64URL β€” kaasoo isticmaala - iyo _ halkii + iyo /, wuuna ka tagaa buul-sarreynta. Koodhku wuxuu dib u beddelaa xarfahaas wuxuuna ku buul-sareeyaa calaamado = ah, kadibna wuxuu wacaa atob() ee biraawsarka ku dhex jira si uu u furo bytes-ka.
  2. 2
    Falanqaynta JSON iyo soo-saarka claim-ka
    Bytes-ka la furay waxaa loo mariyaa JSON.parse si loo soo saaro shayaasha madaxa iyo payload-ka. Claims-ka diiwaan-gashan ee exp, iat, iyo nbf waxaa loo soo saaraa taariikhaha Unix waxaana loo beddelaa shayaal Date ah; xaaladda dhicitaanka waa dib loo hubiyaa 20 ilbiriqsi kasta via setInterval si token dhici doona intii tab-ku furan yahay uu si toos ah u beddelo sax ilaa dhacay. Taariikhaha la xiriira ('3 maalmood kadib', '2 saacadood ka hor') waxaa loo qaabeeyaa Intl.RelativeTimeFormat isagoo isticmaalaya goobta biraawsarkaaga.
  3. 3
    Muuqaalka sumadda iyo xaqiijinta ikhtiyaarka ah
    Xariga sumadda ceyriinka Base64URL ah waxaa la muujiyaa agagaarka madaxa iyo payload-ka. Haddii aad bixiso fure, qalabku wuxuu wacaa crypto.subtle.importKey iyo crypto.subtle.verify si uu si gudaha ah u hubiyo sumadda. Wuxuu aqbalaa qarsoodiyada la wadaago ee HMAC (HS256/384/512), furayaasha dadweynaha RSA ee PEM-encoded (RS256/384/512), iyo furayaasha dadweynaha ECDSA ama shayaasha JWK/JWKS (ES256/384/512) β€” waxaa go'aamiya goobta alg ee madaxa.
  4. 4
    Codsi shabakadeed ma jiraan
    Tallaabo kasta β€” furitaanka, xisaabta taariikhaha, iyo xaqiijinta cryptographic-ka β€” waxay ka dhacaan injineerka JavaScript ee biraawsarka gudihiisa. Token-ka iyo fure kasta oo aad gasho weligood kama baxaan aaladdaada.

JWTs badanaa waxay sitaan aqoonsi fadhi, aqoonsiga isticmaalaha, iyo baaxadaha ogolaanshaha; qalabkani wuxuu furaa oo ikhtiyaar ahaan xaqiijiyaa gebi ahaanba biraawsarkaaga isagoo isticmaalaya atob() iyo API-ga Web Crypto, sidaa darteed token-ka ama fure kasta oo aad bixiso midna meel looma diro.

Qalabka La Xiriira

Su'aalaha Inta Badan La Iska Weydiiyo