node制作token
1定义:jwt全称json web token ,jwt.io是用于令牌签名/验证的库,用来生成jwt。简单理解一下,就是 jwt.io这个库,提供了一种方法可以将一些信息加密,形成一串长长的字符串;
2.node中使用
借助jsonwebtoken插件
- (1)下载: npm i jsonwebtoken
- (2)导入: const jwt=require('jsonwebtoken')
-
(3)存在一个加密函数
sign
用于生成jwt ;-
语法:jwt.sign(data,str,option)
-
data
-
加密数据
-
类型:对象
-
-
str
-
自定义字符串(密钥)
-
类型:字符串
-
-
option:
-
配置项
-
类型:对象
-
可以设置令牌有效时间{expiresIn:time}
-
time取值eg:2h;表示有效期为2小时;
-
-
-
-
举例说明
-
token = jwt.sign( { id: String(results[0].id), username: String(results[0].username) }, 'token', { expiresIn: '2h' } ) res.send({ message: '登录成功', code: 200, data: { token } })
-
-
-
(4)存在一个解密函数
verify
函数用户解密-
语法:jwt.verify(data,str)
-
data:要解密的数据(前端携带过来的token
req.headers.属性名
) -
str:密钥
-
-
举例说明
-
const { id } = jwt.verify(req.headers.token, 'token')
-
-