JWT簡介

在介紹JWT之前先看一下傳統(tǒng)校驗令牌的方法,如下圖:

圖片.png

問題:
傳統(tǒng)授權(quán)方法的問題是用戶每次請求資源服務(wù)驾诈,資源服務(wù)都需要攜帶令牌訪問認證服務(wù)去校驗令牌的合法性缠诅,并根據(jù)令牌獲取用戶的相關(guān)信息,性能低下乍迄。
解決:
使用JWT的思路是管引,用戶認證通過會得到一個JWT令牌,JWT令牌中已經(jīng)包括了用戶相關(guān)的信息闯两,客戶端只需要攜帶JWT訪問資源服務(wù)褥伴,資源服務(wù)根據(jù)事先約定的算法自行完成令牌校驗,無需每次都請求認證服務(wù)完成授權(quán)漾狼。
JWT令牌授權(quán)過程如下圖:
圖片.png

什么是JWT重慢?
JSON Web Token(JWT)是一個開放的行業(yè)標準(RFC 7519),它定義了一種簡介的逊躁、自包含的協(xié)議格式似踱,用于
在通信雙方傳遞json對象,傳遞的信息經(jīng)過數(shù)字簽名可以被驗證和信任稽煤。JWT可以使用HMAC算法或使用RSA的公
鑰/私鑰對來簽名屯援,防止被篡改。
官網(wǎng):https://jwt.io/
標準: https://tools.ietf.org/html/rfc7519
JWT令牌的優(yōu)點:
1念脯、jwt基于json狞洋,非常方便解析。
2绿店、可以在令牌中自定義豐富的內(nèi)容吉懊,易擴展。
3假勿、通過非對稱加密算法及數(shù)字簽名技術(shù)借嗽,JWT防止篡改,安全性高转培。
4恶导、資源服務(wù)使用JWT可不依賴認證服務(wù)即可完成授權(quán)。
缺點:
1浸须、JWT令牌較長惨寿,占存儲空間比較大邦泄。

1.令牌結(jié)構(gòu)

通過學(xué)習(xí)JWT令牌結(jié)構(gòu)為自定義jwt令牌打好基礎(chǔ)。
JWT令牌由三部分組成裂垦,每部分中間使用點(.)分隔顺囊,比如:xxxxx.yyyyy.zzzzz

  • Header
    頭部包括令牌的類型(即JWT)及使用的哈希算法(如HMAC SHA256或RSA)
    一個例子如下:
    下邊是Header部分的內(nèi)容
{
  "alg": "HS256",
  "typ": "JWT"
}

將上邊的內(nèi)容使用Base64Url編碼,得到一個字符串就是JWT令牌的第一部分蕉拢。

  • Payload
    第二部分是負載特碳,內(nèi)容也是一個json對象,它是存放有效信息的地方晕换,它可以存放jwt提供的現(xiàn)成字段午乓,比
    如:iss(簽發(fā)者),exp(過期時間戳), sub(面向的用戶)等,也可自定義字段闸准。
    此部分不建議存放敏感信息益愈,因為此部分可以解碼還原原始內(nèi)容。
    最后將第二部分負載使用Base64Url編碼恕汇,得到一個字符串就是JWT令牌的第二部分腕唧。
    一個例子:
{
  "sub": "1234567890",
  "name": "456",
  "admin": true
}
  • Signature
    第三部分是簽名,此部分用于防止jwt內(nèi)容被篡改瘾英。
    這個部分使用base64url將前兩部分進行編碼枣接,編碼后使用點(.)連接組成字符串,最后使用header中聲明
    簽名算法進行簽名缺谴。
    一個例子:
HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

base64UrlEncode(header) :jwt令牌的第一部分但惶。
base64UrlEncode(payload):jwt令牌的第二部分。
secret:簽名所使用的密鑰湿蛔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膀曾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阳啥,更是在濱河造成了極大的恐慌添谊,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件察迟,死亡現(xiàn)場離奇詭異斩狱,居然都是意外死亡,警方通過查閱死者的電腦和手機扎瓶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門所踊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人概荷,你說我怎么就攤上這事秕岛。” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵继薛,是天一觀的道長修壕。 經(jīng)常有香客問我,道長惋增,這世上最難降的妖魔是什么叠殷? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任改鲫,我火速辦了婚禮诈皿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘像棘。我一直安慰自己稽亏,他們只是感情好补胚,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布喉磁。 她就那樣靜靜地躺著系吭,像睡著了一般铝阐。 火紅的嫁衣襯著肌膚如雪采呐。 梳的紋絲不亂的頭發(fā)上醉锄,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天祝谚,我揣著相機與錄音悠瞬,去河邊找鬼锨阿。 笑死宵睦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的墅诡。 我是一名探鬼主播壳嚎,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼末早!你這毒婦竟也來了烟馅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤然磷,失蹤者是張志新(化名)和其女友劉穎郑趁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姿搜,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡寡润,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了痪欲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悦穿。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖业踢,靈堂內(nèi)的尸體忽然破棺而出栗柒,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布瞬沦,位于F島的核電站太伊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逛钻。R本人自食惡果不足惜僚焦,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望曙痘。 院中可真熱鬧芳悲,春花似錦、人聲如沸边坤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茧痒。三九已至肮韧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旺订,已是汗流浹背弄企。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留区拳,地道東北人拘领。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像劳闹,于是被迫代替她去往敵國和親院究。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容