gpt4 book ai didi

javascript - 为什么 jwt.sign() 方法仅适用于字符串 key ?

转载 作者:行者123 更新时间:2023-12-01 00:14:39 26 4
gpt4 key购买 nike

我正在尝试学习 JWT 身份验证 token ,但遇到问题。

在我的代码中,这一行工作正常。

const token = jwt.sign({ foo: 'bar' }, 'ea7aae59cedb7346c');

但是这条线不起作用。

const token = jwt.sign({ foo: 'bar' }, ea7aae59cedb7346c);

对我来说,当我尝试将 jet 身份验证 key 内联而不将其设为字符串值时,它不起作用。

为什么会发生这种情况? jwt.sign() 方法中的字符串化键值常规键值有什么区别?

最佳答案

jwt.sign(payload, secretOrPrivateKey, [options, callback])

Source

const token = jwt.sign({ foo: 'bar' }, 'shhhhh');

payload could be an object literal, buffer or string representing valid JSON.

因此,在您的情况下,您将“有效负载”作为对象传递,“ 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) {}

关于javascript - 为什么 jwt.sign() 方法仅适用于字符串 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59853396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com