nodejs中使用jsonwebtoken
程序员文章站
2022-06-29 18:25:11
...
nodejs 中使用 jsonwebtoken
安装jsonwebtoken
npm install jsonwebtoken -s
签名方法:
jwt.sign(payload, secretOrPrivateKey, [options, callback])
解析验证方法:
jwt.verify(token, secretOrPublicKey, [options, callback])
var jwt = require('jsonwebtoken');
var tokenor = {username: "zhangsan", password: "123"}
var token = jwt.sign(tokenor, 'aixiaodou.cn', {expiresIn: 180}) //3分钟有效期
result = {
code: 200,
msg: '登录成功',
token: token
};
解析
var token = req.headers.sessiontoken //获取前端请求头发送过来的token
if (token) {
// 校验token
// decode是指解码后的信息
jwt.verify(token, 'aixiaodou.cn', function (err, decode) {
if(err) {
return res.send({success: false, msg: 'Failed to authenticate token', retcode: 400})
} else {
req.decode = decode; // 将解码信息储存于req中方便其他路由使用
var $sql = 'select * from user';
pool.getConnection(function(err, connection){
connection.query($sql, function(err, result){
res.json({
userList: result,
retcode: 200
})
})
})
}
})
}
打印出 decode 为:
{
username: 'zhangsan',
password: '123',
iat: 1575020727, // 生效时间戳 2019-11-29 17:45:27
exp: 1575020907 // 失效时间戳 2019-11-29 17:48:27
}
文档介绍:
http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
上一篇: NodeJs中使用jQuery