NodeJs jwt(JsonWebToken)

导入模块

npm install jsonwebtoken

在js文件中引用

var jwt = require("jsonwebtoken");

生成Token

var content ={msg:"today  is  a  good  day"}; // 要生成token的主题信息
var secretOrPrivateKey="I am a goog man!" // 这是加密的key(密钥) 
var token = jwt.sign(content, secretOrPrivateKey, {
                    expiresIn: 60*60*24  // 24小时过期
                });
console.log("token :" +token );

校验Token

var token = rq.body.token || rq.query.token || rq.headers["x-access-token"]; // 从body或query或者header中获取token
jwt.verify(token, secretOrPrivateKey, function (err, decode) {
            if (err) {  //  时间失效的时候/ 伪造的token          
               rs.json({err:err})
            } else {
                rq.decode = decode; 
                console.log(decode.msg);   // today  is  a  good  day
                next();
            }
 })

注意事项

请使用expiresIn:以秒为单位或描述的时间跨度字符串表示rauchg / MS。如:60,”2 days”,”10h”,”7d”

verify时返回的err的值
"err": {
    "name": "TokenExpiredError",
    "message": "jwt expired",   //  token过了有效期
    "expiredAt": "2016-11-07T03:31:25.000Z"
  }
"err": {
    "name": "JsonWebTokenError",
    "message": "invalid token"  //  伪造/无效的token
  }

为什么要用token验证?给你留一个自学的空间!

你可能感兴趣的:(NodeJs jwt(JsonWebToken))