创建没有签名的 JWT 令牌?

Vil*_*oja 6 javascript digital-signature node.js jwt

是否可以在没有签名的情况下创建 JWT 令牌?

我们有一种情况,我们不需要签名,但需要所有其余的令牌。那么是否可以在没有签名的情况下创建 JWT 令牌?

根据文档,您可以通过以下方式创建令牌:

var token = jwt.sign
Run Code Online (Sandbox Code Playgroud)

命令,所以它有点暗示秘密是强制性的。

Yan*_*oto 5

根据RFC 7519

为了支持 JWT 内容通过 JWT 中包含的签名和/或加密以外的其他方式(例如包含 JWT 的数据结构上的签名)来保护的用例,也可以在没有签名或加密的情况下创建 JWT . 不安全的 JWT 是使用“alg”标头参数值“none”的 JWS,其 JWS 签名值使用空字符串,如 JWA 规范 [JWA] 中所定义;它是一个不安全的 JWS,以 JWT 声明集作为其 JWS 有效负载。

由于您没有提到您使用的是哪个库,我想您使用的是来自 auth0 的库。虽然我还没有测试过,但似乎设置algorithmnone, 会导致“没有数字签名或 MAC 值”:

var token = jwt.sign({ foo: 'bar' }, cert, { algorithm: 'none'});
Run Code Online (Sandbox Code Playgroud)