使用 jsonwebtoken 生成一个 token
先安装 jsonwebtoken 模块 : npm install jsonwebtoken
js设置token
const jwt = require('jsonwebtoken');
let token = jwt.sign(
{
data:data //存入token的数据
},
'sfsws23s', //加密的字符串,默认加密算法是 HS256
{
expiresIn: '2h' //设置有效期时间
});
以上是设置一个简单的 token,在正常使用时还需加上接口认证方式
//Bearer
token = 'Bearer ' + jwt.sign(
{
data:data //存入token的数据
},
'xxxxxx', //加密的字符串,默认加密算法是 HS256
{
expiresIn: '2h' //设置有效期时间
});
使用 express-jwt 解析 token
先进行安装 express-jwt 模块 : npm install express-jwt
const express = require('express');
const app = express();
const jwt = require('express-jwt');
//对token进行解密
app.use(jwt({
secret: 'xxxxx', //xxxxx是在设置token时所写的加密字符串
algorithms: ['HS256'] // HS256是在设置token时所使用的加密算法
}).unless({
path: ['/yyy', '/sss'] //表示路径为'/yyy', '/sss'的地址不用进行解密
}));
//对token进行解密失败后的错误处理中间件
app.use(function(err, req, res, next) {
if (err.name === 'UnauthorizedError') {
res.status(401).send('出错后需要返回的信息');
}
});
【注】在进行解密后,可以通过 req.user.data 获取存入 token的数据