JWT令牌的最大大小是多少?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JWT令牌的最大大小是多少?相关的知识,希望对你有一定的参考价值。

我需要知道最大长度

JSON Web令牌(JWT)

在规格中没有关于它的信息。可能是这样,长度没有限制吗?

答案

如您所述,RFC7519(https://tools.ietf.org/html/rfc7519)或与JWS或JWE相关的其他RFC中没有定义最大长度。

如果您使用JSON序列化格式或JSON Flattened Serialized格式,则没有限制,也没有理由定义限制。

但是如果使用JSON Compact序列化格式(最常见的格式),则必须记住它应该尽可能短,因为它主要用于Web上下文。一个4kb的JWT是你应该避免的。

注意只存储有用的声明和标题信息。

另一答案

我也一直想找到这个。

我会说 - 尝试确保它低于7kb。

虽然JWT在规范中没有定义上限(http://www.rfc-editor.org/rfc/rfc7519.txt),但我们确实有一些操作限制。由于JWT包含在HTTP头中,因此我们在大多数当前服务器上的上限(SO: Maximum on http header values)为8K。

因为这包括所有Request标头<8kb,7kb为其他标头提供了合理的空间。该限制的最大风险是cookie(在标头中发送并且可能变大)。

由于它是加密的和base64ed,原始json字符串至少有33%的浪费,所以请检查最终加密令牌的长度。

最后一点 - 代理和其他网络设备可能会沿途应用任意限制......

另一答案

使用heroku时,标题将限制为8k。根据您在jwt2上使用的数据量,它将达到。超大时,请求不会触及您的节点实例,heroku路由器将在您的API层之前删除它。

处理传入请求时,路由器设置8KB接收缓冲区并开始读取HTTP请求行和请求标头。这些中的每一个最多可以是8KB,但总共可以超过8KB。包含请求行或标题行超过8KB的请求将被路由器删除而不会被分派。

见:Heroku Limits

以上是关于JWT令牌的最大大小是多少?的主要内容,如果未能解决你的问题,请参考以下文章

JWT 令牌中应该包含多少配置文件数据?

JWT 令牌和刷新令牌的合理到期日期是啥?

iPhone 设备令牌的大小

使用密钥大小小于 2048 的 RSA 安全密钥创建 JWT 令牌时出错

使用密钥大小小于2048的RSA安全密钥创建JWT令牌时出错

有啥方法可以创建密钥大小为 512 的 JWT 令牌?并更改 AsymmetricSignatureProvider 的默认最小尺寸要求