我需要知道最大长度
JSON 网络令牌 (JWT)
在规范中没有关于它的信息。可能是这样,长度没有限制吗?
我也一直在努力寻找这个。
我会说 - 尝试确保它低于 7kb。
虽然 JWT 在规范 (http://www.rfc-editor.org/rfc/rfc7519.txt) 中没有定义上限,但我们确实有一些操作限制。由于 JWT 包含在 HTTP 标头中,因此我们在当前大多数服务器上的上限 (SO: Maximum on http header values) 为 8K。
因为这包括所有小于 8kb 的请求标头,其中 7kb 为其他标头提供了合理的空间。该限制的最大风险是 cookie(在标头中发送并且可能会变大)。
由于它是加密的和 base64ed,原始 json 字符串至少浪费了 33%,因此请检查最终加密令牌的长度。
最后一点 - 代理和其他网络设备可能会在此过程中应用任意限制......
正如您所说,RFC7519 (https://www.rfc-editor.org/rfc/rfc7519) 或其他与 JWS 或 JWE 相关的 RFC 中没有定义最大长度。
如果您使用 JSON Serialized 格式或 JSON Flattened Serialized 格式,则没有限制,也没有理由定义限制。
但是如果您使用 JSON Compact Serialized 格式(最常见的格式),您必须记住它应该尽可能短,因为它主要用于 Web 上下文。您应该避免使用 4kb JWT。
注意只存储有用的声明和标题信息。
使用 heroku 时,标题将限制为 8k。根据您在 jwt2 上使用的数据量,它会到达。请求过大时,不会触及您的节点实例,heroku 路由器会将其丢弃在您的 API 层之前。
在处理传入请求时,路由器会设置一个 8KB 的接收缓冲区并开始读取 HTTP 请求行和请求标头。每一个的长度最多为 8KB,但总和可以超过 8KB。包含超过 8KB 的请求行或标题行的请求将被路由器丢弃而不被分派。
请参阅:Heroku Limits