【发布时间】:2016-12-25 05:17:09
【问题描述】:
是否可以创建没有签名的 JWT 令牌?
我们有一种情况,我们不需要签名,但需要令牌的所有其余部分。那么是否可以在没有签名的情况下创建 JWT 令牌?
根据文档,您可以通过以下方式创建令牌:
var token = jwt.sign
命令,所以它有点暗示这个秘密是强制性的。
【问题讨论】:
标签: javascript node.js jwt digital-signature
是否可以创建没有签名的 JWT 令牌?
我们有一种情况,我们不需要签名,但需要令牌的所有其余部分。那么是否可以在没有签名的情况下创建 JWT 令牌?
根据文档,您可以通过以下方式创建令牌:
var token = jwt.sign
命令,所以它有点暗示这个秘密是强制性的。
【问题讨论】:
标签: javascript node.js jwt digital-signature
根据RFC 7519:
支持通过某种方式保护 JWT 内容的用例 除了 JWT 中包含的签名和/或加密之外 (例如包含 JWT 的数据结构上的签名)、JWT 也可以在没有签名或加密的情况下创建。无担保的 JWT 是使用“alg”标头参数值“none”的 JWS,并带有 其 JWS 签名值的空字符串,如 JWA 中所定义 规范[JWA];它是带有 JWT 声明集的不安全 JWS 作为其 JWS 有效负载。
由于您没有提及您使用的是哪个库,我想您使用的是from auth0。虽然我还没有测试过,但似乎将algorithm设置为none会导致“没有数字签名或MAC值”:
var token = jwt.sign({ foo: 'bar' }, cert, { algorithm: 'none'});
【讨论】: