【发布时间】:2018-12-11 16:52:41
【问题描述】:
我需要一个令牌来对服务器进行身份验证,我正在使用 jsonwebtoken ,但它只有在令牌的标头是
{
"alg": "RS256"
}
而不是
{
"alg": "RS256",
"typ": "JWT"
}
并且jsonwebtoken 默认标题是第二个,我尝试按照此处https://github.com/auth0/node-jsonwebtoken 的说明将标题设置为选项,但是没有示例所以也许我做错了,但noTimestamp 选项正在工作所以...
文档中有这一行“可以通过 options.header 对象自定义标题。” ,我认为我不明白这一点。
jwt.sign(payload,
pvtKey,
{ algorithm: 'RS256', noTimestamp : true, header: {"alg": "RS256"} }, function(err, token) {
if (err) {
return res.status(500).send("Error1: "+ err);
}
console.log("Created token: " + token);
});
但它并没有改变任何东西,所以如果有人知道如何设置标题?
提前致谢
【问题讨论】:
-
为什么它不适用于存在
typ标头?会导致什么问题? -
它回答我令牌无效,服务器正在等待这个标头,所以我认为他们只是将 base64 标头与他们等待的内容进行比较......我只是建立了一个令牌步骤逐步使用
Buffer和crypto所以我得到了我想要的标题并且它可以工作,但我仍然想知道如何设置标题,因为我们应该能够通过文档来做到这一点 -
服务器端的行为真的很奇怪。那么您可能必须使用您的自定义解决方案。
-
@BobTheDuckLing 我也遇到了同样的问题,请问您可以发布您的自定义令牌创建者代码吗?
标签: node.js express oauth-2.0 jwt