Eu preciso saber o comprimento máximo de
JSON Web Token (JWT)
Nas especificações não há informações sobre isso. Poderia ser isso, não há limitações de comprimento?
Como você disse, não há comprimento máximo definido no RFC7519 ( https://tools.ietf.org/html/rfc7519 ) ou em outros RFCs relacionados ao JWS ou JWE.
Se você usar o formato JSON Serialized ou JSON Flattened Serialized, não há limitação e não há razão para definir uma limitação.
Mas se você usar o formato JSON Compact Serialized (formato mais comum), você deve ter em mente que ele deve ser o mais curto possível, pois é usado principalmente em um contexto da web. Um JWT de 4kb é algo que você deve evitar.
Tome cuidado para armazenar apenas declarações úteis e informações de cabeçalho.
Também tenho tentado encontrar isso.
Eu diria - tente garantir que esteja abaixo de 7 kb .
Embora o JWT não defina nenhum limite superior na especificação ( http://www.rfc-editor.org/rfc/rfc7519.txt ), temos alguns limites operacionais. Como um JWT está incluído em um cabeçalho HTTP, temos um limite superior ( SO: Máximo em valores de cabeçalho HTTP ) de 8K na maioria dos servidores atuais.
Como isso inclui todos os cabeçalhos de solicitação <8kb, com 7kb dando uma quantidade razoável de espaço para outros cabeçalhos. O maior risco para esse limite seriam os cookies (enviados nos cabeçalhos e podem ficar grandes).
Como está criptografado e com base64, há pelo menos 33% de desperdício da string json original, portanto, verifique o comprimento do token criptografado final.
Um ponto final - proxies e outros dispositivos de rede podem aplicar um limite arbitrário ao longo do caminho ...
Ao usar o heroku, o cabeçalho será limitado a 8k. Dependendo de quantos dados você está usando no jwt2, ele será alcançado. A solicitação, quando superdimensionada, não afetará sua instância de nó, o roteador heroku a descartará antes de sua camada de API.
Veja: Limites Heroku
fonte