I need to get a token by signing a user ID with JWT:
var token = jwt.sign(accounts[request.headers.login].id, privateKey, {expiresIn: 60});
Where id
and privateKey
are strings.
The error is Error: Uncaught error: "expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60
.
If I remove options object at all, it works, but without options I need to set.
The issue seems to be simple but I don't know how to fix it, what am I doing wrong?
https://www.npmjs.com/package/jsonwebtoken#jwtsignpayload-secretorprivatekey-options-callback
payload could be an object literal, buffer or string. Please note that exp is only set if the payload is an object literal.
Set the payload as an object if you want to be able to set the expiresIn
option
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
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With