JSON Web Tokens (JWT) 介紹

介紹JWT

在本文中,將解釋JSON Web Tokens(JWT)的基本原理荣德,以及為什么使用它們翔冀。 JWT是確保應(yīng)用程序中的信任和安全性的重要部分。 JWT允許以安全的方式表示諸如用戶數(shù)據(jù)的聲明耻蛇。
為了解釋JWT如何工作踪蹬,讓我們從JWT的抽象定義(RFC 7519)開始。

JSON Web Token (JWT) is a compact, URL-safe means of representing
claims to be transferred between two parties. The claims in a JWT
are encoded as a JSON object that is used as the payload of a JSON
Web Signature (JWS) structure or as the plaintext of a JSON Web
Encryption (JWE) structure, enabling the claims to be digitally
signed or integrity protected with a Message Authentication Code
(MAC) and/or encrypted.

一個(gè)令牌就像這樣:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
令牌中包含了三個(gè)部分:
** header.claims.signature** (也有寫成 ** header.payload.signature**的臣咖,意思是一樣的跃捣。)

Json Web Token

Header

header 部分是一個(gè)簡(jiǎn)單的聲明對(duì)象,這個(gè)聲明包括 signature 使用的算法.
{
"alg" : "AES256",
"typ" : "JWT"
}

Claims

Cliams 也有稱之為Payloads夺蛇,是存放有效信息的地方疚漆。這個(gè)部分包含了業(yè)務(wù)中的所有的信息,用戶可以任意自定義刁赦,但是要避免過于復(fù)雜或者太多的Claims影響性能娶聘。
標(biāo)準(zhǔn)中注冊(cè)的聲明 (建議但不強(qiáng)制使用) :

  • iss: jwt簽發(fā)者
  • sub: jwt所面向的用戶
  • aud: 接收jwt的一方
  • exp: jwt的過期時(shí)間,這個(gè)過期時(shí)間必須要大于簽發(fā)時(shí)間
  • nbf: 定義在什么時(shí)間之前甚脉,該jwt都是不可用的.
  • iat: jwt的簽發(fā)時(shí)間
  • jti: jwt的唯一身份標(biāo)識(shí)丸升,主要用來作為一次性token,從而回避重放攻擊。

我們看看下面的示例:

{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
Signature

Header和Claims使用的是base64編碼牺氨,任何一個(gè)人都可以使用工具進(jìn)行 編碼解碼狡耻,所以,在設(shè)計(jì)JWT時(shí)猴凹,不應(yīng)該在Cliams(聲明)里面加入任何敏感的數(shù)據(jù)夷狰,如用戶密碼之類。
Signature 的主要目的是保護(hù) Header 和 Claims 部分不能被篡改郊霎,一般的做法就是使用 hash 算法生成一個(gè)簽名沼头。這個(gè)只要保證服務(wù)器端的私有 key 是一致的,且不被泄露书劝,就能保證這個(gè) Claims 部分的信息是可信的进倍。如下圖部分,API Server通過檢查JWT庄撮,即可以驗(yàn)證Token的真?zhèn)危瑹o需再與Auth Server進(jìn)行通信驗(yàn)證毙籽。

OAuth

JWT 的適用范圍和優(yōu)點(diǎn)

JWT 非常適用于分布式的無狀態(tài) API 服務(wù)器鑒權(quán)洞斯。
優(yōu)點(diǎn):

  • 開發(fā)簡(jiǎn)單
  • 不需要 cookie
  • 使用了對(duì)移動(dòng)端友好的 JSON 格式
  • 不依賴于登陸服務(wù)器
  • 概念簡(jiǎn)單容易理解
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市坑赡,隨后出現(xiàn)的幾起案子烙如,更是在濱河造成了極大的恐慌,老刑警劉巖毅否,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亚铁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡螟加,警方通過查閱死者的電腦和手機(jī)徘溢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門吞琐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人然爆,你說我怎么就攤上這事站粟。” “怎么了曾雕?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵奴烙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我剖张,道長(zhǎng)切诀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任搔弄,我火速辦了婚禮幅虑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肯污。我一直安慰自己翘单,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布蹦渣。 她就那樣靜靜地躺著哄芜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柬唯。 梳的紋絲不亂的頭發(fā)上认臊,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音锄奢,去河邊找鬼失晴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拘央,可吹牛的內(nèi)容都是我干的涂屁。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼灰伟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拆又!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起栏账,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤帖族,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后挡爵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竖般,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年茶鹃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涣雕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艰亮。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖胞谭,靈堂內(nèi)的尸體忽然破棺而出垃杖,到底是詐尸還是另有隱情,我是刑警寧澤丈屹,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布调俘,位于F島的核電站,受9級(jí)特大地震影響旺垒,放射性物質(zhì)發(fā)生泄漏彩库。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一先蒋、第九天 我趴在偏房一處隱蔽的房頂上張望骇钦。 院中可真熱鬧,春花似錦竞漾、人聲如沸眯搭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳞仙。三九已至,卻和暖如春笔时,著一層夾襖步出監(jiān)牢的瞬間棍好,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工允耿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留借笙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓较锡,卻偏偏與公主長(zhǎng)得像业稼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚂蕴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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

  • 概述 JSON Web令牌(JWT)是一個(gè)緊湊的采用URL安全表示方法的聲明低散,用于在兩方之間傳輸。JWT的聲明被編...
    御淺永夜閱讀 5,189評(píng)論 0 0
  • 未完待續(xù) JWT是什么掂墓? JWT是JSON Web Token的縮寫谦纱,即JSON Web令牌看成。 JWT規(guī)范 中對(duì)其...
    sladeliu閱讀 8,164評(píng)論 0 12
  • 1. 微服務(wù)架構(gòu)介紹 1.1 什么是微服務(wù)架構(gòu)君编? 形像一點(diǎn)來說,微服務(wù)架構(gòu)就像搭積木川慌,每個(gè)微服務(wù)都是一個(gè)零件吃嘿,并使...
    靜修佛緣閱讀 6,652評(píng)論 0 39
  • 本文目錄:一祠乃、單體應(yīng)用 VS 微服務(wù)二、微服務(wù)常見安全認(rèn)證方案三兑燥、JWT介紹四亮瓷、OAuth 2.0 介紹五、思考總...
    挨踢的懶貓閱讀 17,984評(píng)論 5 29
  • 微風(fēng)襲襲 降瞳,漫天烏云嘱支,日落西山,麻雀飛嚀挣饥,農(nóng)民伯伯在農(nóng)田里忙碌著除师。這就是此時(shí)此刻我們村的寫照。 閑來無事正在追新劇...
    我是伍姑娘閱讀 166評(píng)論 0 0