【发布时间】:2015-10-16 17:59:51
【问题描述】:
尝试使用 Stormpath 的 njwt package 来按照 @robertjd 的 this answer 处理 JWT。
在尝试查看verify() 令牌时的各种错误消息时,更改了令牌的单个字符(最后一个),期望验证失败,但令我惊讶的是它通过并显示了令牌正确。
更准确地说,我将最后一个字符从 A 更改为 B。这似乎不是一般情况,因为进行其他单个字符更改会导致预期的JwsParseError 和消息Signature verification failed。我尝试使用默认的HS256 和HS512。
这种行为对于 JWT 是否合法,即最后一个字符是多余的并且不影响验证校验和?还是 njwt 库的问题?
njwt的维护者的子问题:在验证后取回令牌时,标头的algo属性始终具有none的值。我在您的源代码中看到您明确设置它。这是为什么呢?
更新:关于njwt的verify()回调中"algo": "none"的子问题,"none"似乎表示不包含数字签名,当我们在回调中获取令牌。如果我错了,请纠正我。
【问题讨论】: