【问题标题】:expiresIn not working in jsonwebtoken.sign() even with object literalexpiresIn 即使使用对象文字也不能在 jsonwebtoken.sign() 中工作
【发布时间】:2021-12-07 17:52:18
【问题描述】:

这是我的代码,如您所见,I am using an object literal as suggested in the jsonwebtoken library help,但结果始终相同

  const TOKEN = {
    JWT: JWT.sign({
      iat: Date.now(),
      data: {
        username: USER.name,
        userLevel: USER.level,
        userId: USER._id,
        limit: USER.limit,
        has2FA: USER.has2FA
      }
    }, SECRET_KEY,
    { expiresIn: 60 * 60 * 12 }
    )
  }

如您所见,此代码返回 iat 和 exp,仅相差几分钟和几秒,而不是我想要的 12 小时。

关于为什么会发生这种情况的任何想法?


编辑:我正在使用jsonwebtoken和Dayjs来显示时间。

【问题讨论】:

    标签: javascript jwt object-literal


    【解决方案1】:

    问题似乎与您在 毫秒 中指定 iat 而预期在 中的事实有关。所以要么做

    iat: Date.now()/1000,
    

    或完全删除该属性,因为这是默认值。

    【讨论】:

      猜你喜欢
      • 2016-05-09
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      相关资源
      最近更新 更多