导入模块
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验证?给你留一个自学的空间!
网友评论