Nodejs中token的jwt加密與加密校驗

2021-10-09 06:26:05 字數 1448 閱讀 5964

什麼是token

token是服務端⽣成的⼀串字串,作為客戶端進⾏請求的⼀個令牌。當⽤戶登入後,伺服器⽣成⼀

個token返回給客戶端,之後客戶端只需帶上這個token來請求資料即可,⽆需每次都輸⼊⽤戶名和

密碼來鑑權。

token的組成

header

playload

iss (issuer):簽發⼈

exp (expiration time):過期時間

sub (subject):主題

aud (audience):受眾

nbf (not before):⽣效時間

iat (issued at):簽發時間

jti (jwt id):編號

//除上⾯資訊外,可⾃定義其他私有字段,⽐如⼀些⽤戶資訊,但要注意敏感的資訊不要存進來

signature(secret)

hmacsha256(

base64urlencode(header) + 「.」 +

base64urlencode(payload),

secret)

安裝
npm install jsonwebtoken -s

呼叫

constants.js

module.exports =

const jwt =

require

('jsonwebtoken'

)const

=require

('../utils/constant'

)//儲存值 秘鑰 儲存時間

let token = jwt.

sign(,

private_key

,)

安裝
npm install express-jwt -s

呼叫

constants.js

module.exports =

const expressjwt =

require

('express-jwt'

)const

=require

('./utils/constant'

)//algorithms表示加密演算法,2020.7.7日jwt更新之後,安裝的express-jwt模組會預設為6.0.0版本

//不寫這條可能導致報錯

use(

expressjwt()

.unless()

);

nodejs基於Token的身份認證

起初的驗證方式是存在於伺服器的,使用者登入進來以後,伺服器判斷成功,將資料存進session裡面,向使用者返回乙個sessionid。這樣的弊端是,假如使用者基數特別大,每登入乙個使用者,就要儲存一條,對伺服器的記憶體壓力比較大。基於token的驗證方法是無狀態的,因此我們就不用把資訊存在伺服器中了...

django中token的簽發

pip install djangorestframework jwt 2.簽發token 匯入jwt from rest framework jwt.serializers import jwt payload handler from rest framework jwt.serializers...

nodejs中的模組

nodejs中的模組管理遵循commonjs規範。使用module.exports 可簡寫為exports 匯出模組,使用require來引入模組。例 mymodule.js var myfunction function name module.exports myfunction 也可也成exp...