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

我需要知道

JSON Web 令牌(JWT)

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

152092 次浏览

如前所述,在 RFC7519(https://www.rfc-editor.org/rfc/rfc7519)或其他与 JWS 或 JWE 相关的 RFC 中没有定义最大长度。

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

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

注意只存储有用的索赔和标题信息。

我也一直在找这个。

我会说,试着确保是 低于7kb

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

因为这包括 所有请求头 < 8kb,7kb 为其他头提供了合理的空间。对于这个限制,最大的风险是 cookie (发送头文件,可能会变大)。

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

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

当使用 你好时,报头将被限制在8k。这取决于您在 jwt2上使用了多少数据。请求,当超大,将不会触及您的节点实例,heroku 路由器将删除它之前,您的 API 层。.

当处理传入请求时,路由器设置一个8KB 的接收 缓冲区,并开始读取 HTTP 请求行和请求头。 其中每个最多可以有8KB 的长度,但是一起可以更多 包含请求行或标题行的请求 超过8KB 的路由器会丢弃 派遣。

见: Heroku 极限