是啥鳖谈?
1.JWT(json web token) 是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的基于json的開放標(biāo)準(zhǔn)
image.png
2.經(jīng)常被用來(lái)在服務(wù)器和客戶端之間認(rèn)證用戶信息
3.因?yàn)閿?shù)字簽名的存在,信息是可信的赤炒〉踔瑁可以用例如RSA等方式進(jìn)行簽名缎岗。
應(yīng)用場(chǎng)景?
1.用戶一旦登陸成功白粉,其每一個(gè)請(qǐng)求都會(huì)帶上JWT传泊,來(lái)驗(yàn)證其身份,以及權(quán)限鸭巴。
2.信息交換時(shí)帶上JWT眷细,確保信息不是偽造的
結(jié)構(gòu)?
使用 . 分隔一下三部分
1.Header 頭部 {typ:'JWT',alg:'HS256'} 并且轉(zhuǎn)義成base64
2.Payload 負(fù)載 傳遞信息 {name:'dy',code:'typescript',....} 并且轉(zhuǎn)義成base64
3.Signature 簽名 將前面?zhèn)z部分用header中聲明的加密算法簽名
image.png
JWT登陸工作流:
1.用戶的訪問(wèn)請(qǐng)求帶上登錄信息
2.服務(wù)端校驗(yàn)用戶信息
3.服務(wù)端提供一個(gè)token給客戶端
4.客戶端存儲(chǔ)token鹃祖,在之后每一次請(qǐng)求中都帶著它
5.服務(wù)器校驗(yàn)token溪椎,正確則返回信息