欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

https://github.com/auth0/node-jsonwebtoken