Node.js中生成token詳解

1.jsonwebtokens

(1)概述
jsonwebtokens簡稱jwt,是后端用來生成token的一個庫

(2)組成

header(頭部):{
'alg': 'HS256',
'typ': 'JWT'
}

//注釋:header默認(rèn)是以上配置項

payload(數(shù)據(jù)):{
iss:Issuer,發(fā)行者
sub:Subject,主題
aud:Audience,觀眾
exp:Expiration time,過期時間
nbf:Not before
iat:Issued at,發(fā)行時間
jti:JWT ID
}

//注釋:以上是官方給出的一些配置默認(rèn)的鍵名,除了這些你還可以自己定義,自己定義的參數(shù),通過jwt的verify可以解碼出來,從而進(jìn)行數(shù)據(jù)庫的查找

secret(簽名):'I_LOVE_JING'

//注釋:這個簽名你可以自己隨便定義,但是要確保他的安全性,因為后面要經(jīng)行解碼的時候,要用到

(3)方法

sign(payload,secret, {expiresIn:60*60*24// 授權(quán)時效24小時})//此方法會生成一個token,第一個參數(shù)是數(shù)據(jù),第二個參數(shù)是簽名,第三個參數(shù)是token的過期時間可以不設(shè)置
verify(token,secret)//此方法會將一個token解碼,這個token是由哪些數(shù)據(jù)構(gòu)成的,只要傳進(jìn)去的secret正確,就可以解碼出對應(yīng)的數(shù)據(jù),第一個參數(shù)是一個token,第二個參數(shù)是一個簽名

2.生成token

const jwt  = require('jsonwebtokens');
let payload = {name:'張三',admin:true};
let secret = 'I_LOVE_JING';
let token = jwt.sign(payload,secret);
console.log(token)

3.解碼token

let payload = jwt.verify(token,secret)
console.log(payload)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容