为什么 jwt.sign() 方法只适用于字符串密钥?
why jwt.sign() method only works on string secret key?
我正在尝试学习 JWT
身份验证令牌,但我遇到了问题。
在我的代码中,这一行工作正常。
const token = jwt.sign({ foo: 'bar' }, 'ea7aae59cedb7346c');
但是这条线不起作用。
const token = jwt.sign({ foo: 'bar' }, ea7aae59cedb7346c);
对我来说,当我尝试将 jet 身份验证密钥 内联 而不使其成为 字符串值 时,它似乎并没有没用。
为什么会这样? jwt.sign()
方法中的stringified key value
和regular key value
有什么区别?
感谢您提出这个问题。
"secretOrPrivateKey is a string, buffer, or object containing either the secret for HMAC algorithms or the PEM encoded private key for RSA and ECDSA."
如https://www.npmjs.com/package/jsonwebtoken
所述
我已经将我的 .env 文件放入其中,它工作正常。
像这样。
.env 文件密钥是这样的。
jwt.sign(payload, secretOrPrivateKey, [options, callback])
const token = jwt.sign({ foo: 'bar' }, 'shhhhh');
payload could be an object literal, buffer or string representing
valid JSON.
所以在你的情况下你将 "payload" 作为对象传递并且 "secret" 是 "shhhhh"
根据文档
secretOrPrivateKey is a string, buffer, or object containing either
the secret for HMAC algorithms or the PEM encoded private key for RSA
and ECDSA.
所以你没有提供有效的参数,它是长值而不是字符串
您可以将值作为字符串传递或在 secretOrPrivateKey 中传递算法
像这样
hmacSha256(key, message) {}
我正在尝试学习 JWT
身份验证令牌,但我遇到了问题。
在我的代码中,这一行工作正常。
const token = jwt.sign({ foo: 'bar' }, 'ea7aae59cedb7346c');
但是这条线不起作用。
const token = jwt.sign({ foo: 'bar' }, ea7aae59cedb7346c);
对我来说,当我尝试将 jet 身份验证密钥 内联 而不使其成为 字符串值 时,它似乎并没有没用。
为什么会这样? jwt.sign()
方法中的stringified key value
和regular key value
有什么区别?
感谢您提出这个问题。 "secretOrPrivateKey is a string, buffer, or object containing either the secret for HMAC algorithms or the PEM encoded private key for RSA and ECDSA." 如https://www.npmjs.com/package/jsonwebtoken
所述我已经将我的 .env 文件放入其中,它工作正常。
像这样。
.env 文件密钥是这样的。
jwt.sign(payload, secretOrPrivateKey, [options, callback])
const token = jwt.sign({ foo: 'bar' }, 'shhhhh');
payload could be an object literal, buffer or string representing valid JSON.
所以在你的情况下你将 "payload" 作为对象传递并且 "secret" 是 "shhhhh"
根据文档
secretOrPrivateKey is a string, buffer, or object containing either the secret for HMAC algorithms or the PEM encoded private key for RSA and ECDSA.
所以你没有提供有效的参数,它是长值而不是字符串
您可以将值作为字符串传递或在 secretOrPrivateKey 中传递算法 像这样
hmacSha256(key, message) {}