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

Ser*_*rov 3 javascript json-web-token

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

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

哪里idprivateKey是字符串.

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

问题似乎很简单,但我不知道如何解决它,我做错了什么?

小智 10

https://www.npmjs.com/package/jsonwebtoken#jwtsignpayload-secretorprivatekey-options-callback

payload可以是对象文字,缓冲区或字符串.请注意,仅当有效负载是对象文字时才设置exp.

  • 哦,好像我无法设置过期日期,如果有效载荷是一个字符串.谢谢! (2认同)

Pip*_*ipo 7

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

var token = jwt.sign(
    {id: accounts[request.headers.login].id}, // object and not string
    privateKey,
    {expiresIn: 60d} // added days
)
Run Code Online (Sandbox Code Playgroud)