在jwt.sign中,exp字段定义不清楚

时间:2016-09-29 15:58:14

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

如何表达有效载荷的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"表示令牌的到期日期,以纪元为单位,以秒为单位。 正确吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

刚刚测试过,是“exp”表示令牌的到期日期,从纪元开始的几秒钟内,但未在文档中说明。