节点 js JWT 令牌不是使用 RS256 算法生成的
Posted
技术标签:
【中文标题】节点 js JWT 令牌不是使用 RS256 算法生成的【英文标题】:Node js JWT token not generated with RS256 algorithm 【发布时间】:2019-10-08 18:00:35 【问题描述】:我使用 JWT 来保护我的 node.js REST api 调用。 我使用以下代码生成令牌:
jwt.sign( foo: 'bar' , private_key, algorithm: 'RS256', (err, token) =>
res.json(
token
);
但是当我使用算法时我没有得到任何令牌:'RS256'。但上面的代码适用于算法:'HS256'。
你知道解决办法吗?
【问题讨论】:
您没有显示私钥实际上是什么。你有任何错误吗?请点击编辑完成上面的代码,并为您的问题添加更多信息。 您使用什么 npm 包来尝试生成 JWT?另外请将console.log(err, token);
添加到您的代码中并报告结果。
如果你只是把不完整的问题扔掉然后不再反应,那就太浪费时间了
【参考方案1】:
试试这个:
jwt.sign( foo: 'bar' , private_key, [ algorithm: 'RS256', (err, token) =>
res.json(
token
]);
在 npm 文档中出现这个 jwt.sign(payload, secretOrPrivateKey, [options, callback])
所以像数组一样传递你的选项和回调。希望对您有所帮助
【讨论】:
[options, callback]
表示可选以上是关于节点 js JWT 令牌不是使用 RS256 算法生成的的主要内容,如果未能解决你的问题,请参考以下文章
在 Knock (rails) 中验证用 RS256 签名的 JWT 令牌
更改 AWS Cognito 访问令牌 JWT 中的加密算法
django rest框架使用jwt RS256解码签名错误