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验证?给你留一个自学的空间!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jsonwebtoken 具体的实践可以看我github上的例子。 用法 jwt.sign(payload, se...
    Gukson666阅读 8,773评论 1 2
  • 参考文档:https://segmentfault.com/a/1190000009494020 github地址...
    DontPushMeForev阅读 13,690评论 0 5
  • Koa2脚手架框架搭建流程 记录一下自己之前使用koa2创建项目时初始化的整个流程: 路由 数据库 返回结构定义 ...
    大鹏_xzlp阅读 5,579评论 1 6
  • Runloop 是 iOS 提供的一个事件处理机制,当无事件发生时,当前线程会休眠,只有当事件(比如触摸)到来时才...
    Jseanj86阅读 324评论 0 1
  • 今天,我们快来到圣天湖的时候,我们看见了一片月季花,粉色的月季花和红色的月季花交错着,远远望去还能看见湖水。 ...
    杨斯茹阅读 642评论 0 0