jsonwebtoken.sign() 失败并设置了 expiresIn 选项

新手上路,请多包涵

我需要通过使用 JWT 签署用户 ID 来获取令牌:

 var token = jwt.sign(accounts[request.headers.login].id, privateKey, {expiresIn: 60});

其中 idprivateKey 是字符串。

错误是 Error: Uncaught error: "expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60 。如果我完全删除选项对象,它会起作用,但没有我需要设置的选项。

这个问题看起来很简单,但我不知道如何解决,我做错了什么?

原文由 Sergei Basharov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 902
2 个回答

如果您希望能够设置 expiresIn 选项,请将 有效负载设置为对象

var token = jwt.sign(
    {id: accounts[request.headers.login].id}, // object and not string
    privateKey,
    {expiresIn: '60d'} // added days, default for ex 60 would be ms, you can also provide '1h' etc
)

原文由 Pipo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏