首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jwt中过期令牌-简单?

如何在jwt中过期令牌-简单?
EN

Stack Overflow用户
提问于 2016-10-19 07:00:37
回答 5查看 7.8K关注 0票数 4

我只是在nodejs.i的后端实现了jwt-简单,我想在给定的时间内终止令牌。

代码语言:javascript
复制
 var jwt = require('jwt-simple');
    Schema.statics.encode = (data) => {
    return JWT.encode(data, CONSTANT.ADMIN_TOKEN_SECRET, 'HS256');
};
Schema.statics.decode = (data) => {
    return JWT.decode(data, CONSTANT.ADMIN_TOKEN_SECRET);
};

如何在jwt-简单中添加过期时间

EN

回答 5

Stack Overflow用户

发布于 2017-02-13 00:50:58

没有默认的exp。有两种方法可以手动添加:

  1. 用普通的js: Math.round(Date.now() / 1000),exp: Math.round(Date.now() / 1000 +5* 60 * 60)
  2. 使用moment.js: .unix(),exp:矩().add(5,'hours').unix()

来源来自原始的Github存储库。

票数 5
EN

Stack Overflow用户

发布于 2016-10-31 15:00:49

您可以在护照策略函数中使用到期日期验证令牌,如下所示:

代码语言:javascript
复制
passport.use(new JwtStrategy(opts, function(jwt_payload, done){
    User.find({id: jwt_payload.id}, function(err, user){
        if (err) {
            return done(err, false, {message: "Incorrect Token!!"});
        }
        if (user) {
            if (user[0].token_expiration_date <= Date.now()){
                return done(null, false, {message: "Expired Token"});
            }else{
                return done(null, user);
            }
        }else{
            return done(null, false, {message: "Incorrect Token"});
        }

    });
}));

希望这能帮到你。

票数 1
EN

Stack Overflow用户

发布于 2019-08-02 10:54:57

更准确地说,在数据对象中添加exp属性,其中exp是unix格式的过期时间。

例如:

代码语言:javascript
复制
var data = {"data":["some data"],exp:16872131302}
var jwt = require('jwt-simple');
    Schema.statics.encode = (data) => {
    return JWT.encode(data, CONSTANT.ADMIN_TOKEN_SECRET, 'HS256');
};
Schema.statics.decode = (data) => {
     return JWT.decode(data, CONSTANT.ADMIN_TOKEN_SECRET);
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40124321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档