×

Node Javascript Token

jsonwebtokens —— Node.js中生成token详解

sexyspace sexyspace 发表于2021-01-04 20:30:18 浏览116 评论0

1.jsonwebTokens

(1)概述
jsonwebtokens简称jwt,是后端用来生成token的一个库

(2)组成

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

//注释:header默认是以上配置项

payload(数据):{
iss:Issuer,发行者
sub:Subject,主题
aud:Audience,观众
exp:Expiration time,过期时间
nbf:Not before
iat:Issued at,发行时间
jti:JWT ID
}

//注释:以上是官方给出的一些配置默认的键名,除了这些你还可以自己定义,自己定义的参数,通过jwt的verify可以解码出来,从而进行数据库的查找

secret(签名):'I_LOVE_JING'

//注释:这个签名你可以自己随便定义,但是要确保他的安全性,因为后面要经行解码的时候,要用到

(3)方法

sign(payload,secret, {expiresIn:60*60*24// 授权时效24小时})//此方法会生成一个token,第一个参数是数据,第二个参数是签名,第三个参数是token的过期时间可以不设置
verify(token,secret)//此方法会将一个token解码,这个token是由哪些数据构成的,只要传进去的secret正确,就可以解码出对应的数据,第一个参数是一个token,第二个参数是一个签名

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)