【问题标题】:exp field definition unclear in jwt.signjwt.sign 中的 exp 字段定义不清楚
【发布时间】:2017-02-08 01:20:42
【问题描述】:

payload的exp字段应该如何表达?

   jwt.sign({
        _id: this._id,
        email: this.email,
        name: this.name,
        exp: //how do I set this value ?,
   }, "MY_SECRET");

文档中没有明确解释

https://github.com/auth0/node-jsonwebtoken

从我这里的示例代码:

userSchema.methods.generateJwt = function() {
    var expiry = new Date();
    expiry.setDate(expiry.getDate() + 7);

    return jwt.sign({
        _id: this._id,
        email: this.email,
        name: this.name,
        exp: parseInt(expiry.getTime() / 1000),
    }, "MY_SECRET");
};

我假设“exp”表示令牌的到期日期,以从纪元开始的秒数为单位。 对吗?

【问题讨论】:

标签: node.js express json-web-token


【解决方案1】:

这完全取决于应用程序的类型,这是我们推荐的方法。

一个好的模式是在令牌过期之前刷新它。

将令牌有效期设置为一周,并在用户每次打开 Web 应用程序时和每隔一小时刷新一次令牌。

要刷新令牌,您的 api 需要一个新的端点来接收有效的、未过期的 JWT,并返回具有新过期字段的相同签名 JWT。然后 Web 应用程序会将令牌存储在某处。

【讨论】:

    【解决方案2】:

    刚刚测试过,是的,“exp”表示Token的到期日期,从纪元开始以秒为单位,但文档中没有说明。

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      相关资源
      最近更新 更多