美文网首页
NodeJs jwt(JsonWebToken)

NodeJs jwt(JsonWebToken)

作者: Veb | 来源:发表于2018-10-24 10:38 被阅读0次

    导入模块

    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)

          本文链接:https://www.haomeiwen.com/subject/zhsttqtx.html