JSON Web Token簡單研究記錄

const jwt = require('jsonwebtoken')
// cert密鑰
let cert = '12345678901234567890123456789012'

let jwtVerify = (token) => {
    jwt.verify(token, cert, (err, decoded) => {
        if (err) {
            console.log(err)
        } else {
            console.log(decoded)
        }
    });
}
// Claims (Payload)
// sub(subject): 該JWT所面向的用戶 The subject of the token, token 主題(用戶id)
// iss(issuer): 該JWT的簽發者 The issuer of the token, token 是給誰的(網站地址,特殊標識等)
// iat(issued at): 在何時簽發的 token Issued At, 建立時間(Unix 時間戳格式)
// exp(expires): token何時過時 Expiration Time, token 過時時間(Unix 時間戳格式)
// nbf(not before):token在此時間以前不能被接收處理(Unix 時間戳格式)
// jti(jwtid):JWT ID爲web token提供惟一標識
let createAt = Math.trunc(Date.now() / 1000)
jwt.sign({
    sub: 6,
    iss: 'http://localhost:8000/',
    iat: createAt,  // 1482140990,
    exp: createAt + 100000,  // 1482227390,
    nbf: createAt,
    jti: 'id123456789012345678901234567890'
}, cert, { algorithm: 'HS256' }, function (err, token) {
    console.log(`token: ${token}`)
    jwtVerify(token)
});
相關文章
相關標籤/搜索