创建没有签名的JWT令牌

Create JWT token without signature?

本文关键字:JWT 令牌 创建      更新时间:2023-09-26

是否可以创建没有签名的JWT令牌?

在这种情况下,我们不需要签名,但需要令牌的其余部分。那么,是否有可能在没有签名的情况下创建JWT令牌呢?

根据文档,通过以下方式创建令牌:
var token = jwt.sign

命令,所以它暗示秘密是强制的

根据RFC 7519:

支持通过某种方式保护JWT内容的用例除了JWT中包含的签名和/或加密之外(例如在包含JWT的数据结构上签名),JWT也可以在没有签名或加密的情况下创建。一个无担保JWT是使用"算法"的JWS。参数值"none"和JWA中定义的JWS签名值的空字符串规范(JWA);它是一个具有JWT声明集的无担保JWS作为JWS有效载荷

既然你没有提到你正在使用哪个库,我猜你正在使用auth0中的库。虽然我还没有测试过,但似乎将algorithm设置为none会导致"没有数字签名或MAC值":

var token = jwt.sign({ foo: 'bar' }, cert, { algorithm: 'none'});