【问题标题】:What is the maximum size of JWT token?JWT 令牌的最大大小是多少?
【发布时间】:2014-11-19 22:55:21
【问题描述】:

我需要知道最大长度

JSON 网络令牌 (JWT)

在规范中没有关于它的信息。难不成,没有长度限制?

【问题讨论】:

    标签: jwt


    【解决方案1】:

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

    在处理传入请求时,路由器设置 8KB 接收 缓冲区并开始读取 HTTP 请求行和请求标头。 这些中的每一个的长度最多为 8KB,但加起来可以更多 总共超过 8KB。包含请求行或标题行的请求 超过 8KB 的数据将被路由器丢弃而不被 已发送。

    见:Heroku Limits

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        我也一直在寻找这个。

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

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

        因为这包括 所有 请求标头

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

        最后一点 - 代理和其他网络设备可能会在此过程中应用任意限制...

        【讨论】:

        • 是否有任何实际的理由来避免 2-3kb 范围内的“大”标记?
        • @SamuelElrod 这可能取决于您的应用程序的要求。每个涉及 JWT 的请求 2-3kb 都会增加相当数量的行李,每次都要通过网络传输。如果这会影响用户感知的性能,那么您将对其进行限制。
        • 尽量避免让你的令牌膨胀。我想说2-3k已经太大了,你里面有什么?我当前的令牌是 320 字节。
        • 我正在考虑将权限映射放入我的。它将包含当前用户的通用 JWT 信息,以及包含他们拥有权限的所有用户的 user_id 和权限类型的映射。这在理论上可以无限增长。
        • 有趣,我现在也在考虑铲一张特权图。现在我的计划是使用幼稚的方法并将它们铲成 JSON 数组,如果这是一个问题,我将来会尝试以类似二进制的格式打包内容。
        猜你喜欢
        • 1970-01-01
        • 2013-02-26
        • 2012-06-30
        • 2011-03-13
        • 1970-01-01
        • 2012-11-10
        • 2011-02-28
        相关资源
        最近更新 更多