日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一、JWT簡介

JSON Web Token(JWT)是一個(gè)開放的標(biāo)準(zhǔn)(RFC 7519),它定義了一個(gè)緊湊且自包含的方式,用于在各方之間作為JSON對(duì)象安全地傳輸信息。由于此信息是經(jīng)過數(shù)字簽名的,因此可以被驗(yàn)證和信任。

更多信息可以查看官網(wǎng):https://jwt.io/introduction/

二、JWT認(rèn)證和session認(rèn)證的區(qū)別

  1. session認(rèn)證

http協(xié)議是一種無狀態(tài)的協(xié)議,而這就意味著如果用戶向我們的應(yīng)用提供了用戶名和密碼來進(jìn)行用戶認(rèn)證,那么下一次請(qǐng)求時(shí),用戶還要再一次進(jìn)行用戶認(rèn)證才行,因?yàn)楦鶕?jù)http協(xié)議,我們并不能知道是哪個(gè)用戶發(fā)送的請(qǐng)求,所以為了讓我們的應(yīng)用能識(shí)別是哪個(gè)用戶發(fā)出的,我們只能在服務(wù)器存儲(chǔ)一份用戶登陸的信息,這份登陸信息會(huì)在響應(yīng)時(shí)傳遞給瀏覽器,告訴其保存為cookie,以便下次請(qǐng)求時(shí)發(fā)送給我們的應(yīng)用,這樣我們的應(yīng)用個(gè)就能識(shí)別請(qǐng)求來自哪個(gè)用戶了,這就是傳統(tǒng)的基于sessino認(rèn)證。

  1. JWT認(rèn)證

基于token的鑒權(quán)機(jī)制類似于http協(xié)議也是無狀態(tài)的,它不需要在服務(wù)端去保留用戶的認(rèn)證信息或會(huì)話信息。這也就意味著JWT認(rèn)證機(jī)制的應(yīng)用不需要去考慮用戶在哪一臺(tái)服務(wù)器登錄了,這就為應(yīng)用的擴(kuò)展提供了便利。

三、JWT認(rèn)證流程

一分鐘帶你了解JWT認(rèn)證

 

認(rèn)證流程如下:

  1. 用戶使用賬號(hào)和密碼發(fā)出post請(qǐng)求;
  2. 服務(wù)器使用私鑰創(chuàng)建一個(gè)jwt;
  3. 服務(wù)器返回這個(gè)jwt給瀏覽器;
  4. 瀏覽器將該jwt串在請(qǐng)求頭中像服務(wù)器發(fā)送請(qǐng)求;
  5. 服務(wù)器驗(yàn)證該jwt;
  6. 返回響應(yīng)的資源給瀏覽器。

四、JWT組成

先來看一張JWT的信息的截圖:

一分鐘帶你了解JWT認(rèn)證

 

從上圖可以看到,JWT含有三部分:頭部(header)、載荷(payload)、簽名(signature)。

  1. 頭部(header)

JWT的頭部有兩部分信息:

  • 聲明類型,這里是JWT
  • 聲明加密的算法,通常直接使用Hmac SHA256

頭部示例如下:

頭部一般使用base64加密,加密后密文:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9

  1. 載荷(payload)

該部分一般存放一些有效的信息。JWT的標(biāo)準(zhǔn)定義包含五個(gè)字段:

  • iss:該JWT的簽發(fā)者
  • sub: 該JWT所面向的用戶
  • aud: 接收該JWT的一方
  • exp(expires): 什么時(shí)候過期,這里是一個(gè)Unix時(shí)間戳
  • iat(issued at): 在什么時(shí)候簽發(fā)的

載荷示例如下:

  1. 簽名(signature)

前面兩部分都是使用Base64進(jìn)行編碼的,即前端可以解開知道里面的信息。signature 需要使用編碼后的header和payload以及我們提供的一個(gè)密鑰,然后使用header中指定的簽名算法(HS256)進(jìn)行簽名。簽名的作用是保證 JWT 沒有被篡改過。

三個(gè)部分通過.連接在一起就是我們的 JWT 了,所以我們生成的JWT如下:

注意:密鑰就是用來進(jìn)行JWT的簽發(fā)和JWT的驗(yàn)證,所以,它就是你服務(wù)端的私鑰,在任何場(chǎng)景都不應(yīng)該泄露出去。

五、JWT使用場(chǎng)景

JWT主要使用場(chǎng)景如下:

  • 授權(quán)

這是JWT使用最多的場(chǎng)景,一旦用戶登錄,每個(gè)后續(xù)的請(qǐng)求將包括JWT,從而允許用戶訪問該令牌允許的路由、服務(wù)和資源。

  • 信息交換:JSON

JWT可以用在各方之間安全地傳輸信息,因?yàn)镴WT可以進(jìn)行簽名,所以您可以確定發(fā)件人是他們所說的人。另外,由于簽名是使用標(biāo)頭和有效負(fù)載計(jì)算的,因此您還可以驗(yàn)證內(nèi)容是否未被篡改。

分享到:
標(biāo)簽:認(rèn)證 JWT
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定