即使使用对象文字,expiresIn 也无法在 jsonwebtoken.sign() 中工作

expiresIn not working in jsonwebtoken.sign() even with object literal

这是我的代码,如您所见,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 }
    )
  }

如您所见,此代码 returns iat 和 exp 都只有几分钟和几秒的差异,而不是我想要的 12 小时。

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


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

问题似乎与您在 毫秒 内指定 iat 而预期在 .所以要么

iat: Date.now()/1000,

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