牛逼!單點(diǎn)登錄系統(tǒng)用 8 張漫畫就解釋了。。。
來源:blog.leapoahead.com/2015/09/06/understanding-jwt/https://your.awesome-app.com/make-friend/?from_user=B&target_user=A

JWT的組成
載荷(Payload)
{
"iss": "John Wu JWT",
"iat": 1441593502,
"exp": 1441594722,
"aud": "www.example.com",
"sub": "[email protected]",
"from_user": "B",
"target_user": "A"
}
iss: 該JWT的簽發(fā)者sub: 該JWT所面向的用戶aud: 接收該JWT的一方exp(expires): 什么時(shí)候過期,這里是一個(gè)Unix時(shí)間戳iat(issued at): 在什么時(shí)候簽發(fā)的
eyJpc3MiOiJKb2huIFd1IEpXVCIsImlhdCI6MTQ0MTU5MzUwMiwiZXhwIjoxNDQxNTk0NzIyLCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiZnJvbV91c2VyIjoiQiIsInRhcmdldF91c2VyIjoiQSJ9
var base64url = require('base64url')
var header = {
"from_user": "B",
"target_user": "A"
}
console.log(base64url(JSON.stringify(header)))
// 輸出:eyJpc3MiOiJKb2huIFd1IEpXVCIsImlhdCI6MTQ0MTU5MzUwMiwiZXhwIjoxNDQxNTk0NzIyLCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiZnJvbV91c2VyIjoiQiIsInRhcmdldF91c2VyIjoiQSJ9
小知識(shí):Base64是一種編碼,也就是說,它是可以被翻譯回原來的樣子來的。它并不是一種加密過程。
頭部(Header)
{
"typ": "JWT",
"alg": "HS256"
}
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
簽名(簽名)
.連接在一起(頭部在前),就形成了eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcm9tX3VzZXIiOiJCIiwidGFyZ2V0X3VzZXIiOiJBIn0
這一部分的過程在node-jws的源碼中有體現(xiàn)
mystar作為密鑰的話,那么就可以得到我們加密后的內(nèi)容rSWamyAYwuHCo7IFAgd1oRpSP7nzL7BF5t7ItqpKViM

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcm9tX3VzZXIiOiJCIiwidGFyZ2V0X3VzZXIiOiJBIn0.rSWamyAYwuHCo7IFAgd1oRpSP7nzL7BF5t7ItqpKViM
https://your.awesome-app.com/make-friend/?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcm9tX3VzZXIiOiJCIiwidGFyZ2V0X3VzZXIiOiJBIn0.rSWamyAYwuHCo7IFAgd1oRpSP7nzL7BF5t7ItqpKViM
簽名的目的是什么? Base64是一種編碼,是可逆的,那么我的信息不就被暴露了嗎?
簽名的目的

alg字段指明了我們的加密算法了。信息會(huì)暴露?
JWT的適用場(chǎng)景
- END - 最近熱文
? 崩潰!補(bǔ)稅10W+ ? 字節(jié)1/3員工反對(duì)取消大小周:每年少賺10萬塊! ? “我的開源項(xiàng)目被科技巨頭拿去做產(chǎn)品了,注釋中連名字都被刪掉了” ? 12門課100分,直博清華的學(xué)霸火了!“造假都不敢這么寫”
評(píng)論
圖片
表情
