是否可以在没有签名的情况下创建JWT令牌?
我们有一个案例,我们不需要签名,但需要所有其余的令牌。那么是否可以在没有签名的情况下创建JWT令牌?
根据文档,您可以通过以下方式创建令牌:
var token = jwt.sign
命令,所以它暗示秘密是强制性的。
答案 0 :(得分:4)
根据RFC 7519:
支持通过手段保护JWT内容的用例 JWT中包含的签名和/或加密除外 (例如包含JWT的数据结构上的签名),JWT 也可以在没有签名或加密的情况下创建。无担保 JWT是一个JWS,使用“alg”Header参数值“none”和 JWS签名值的空字符串,如JWA中所定义 规范[JWA];它是带有JWT声明集的不安全JWS 作为其JWS Payload。
由于您没有提到您正在使用的库,我认为您使用的是from auth0。虽然我尚未对其进行测试,但似乎将algorithm
设置为none
会导致“无数字签名或MAC值”:
var token = jwt.sign({ foo: 'bar' }, cert, { algorithm: 'none'});