Respuestas:
Como dijiste, no hay una longitud máxima definida en el RFC7519 ( https://tools.ietf.org/html/rfc7519 ) u otros RFC relacionados con JWS o JWE.
Si usa el formato JSON serializado o el formato JSON Flat Serialized, no hay ninguna limitación y no hay razón para definir una limitación.
Pero si usa el formato JSON Compact Serialized (formato más común), debe tener en cuenta que debe ser lo más corto posible porque se usa principalmente en un contexto web. Un JWT de 4kb es algo que debe evitar.
Tenga cuidado de almacenar solo reclamaciones útiles e información de encabezado.
También he intentado encontrar esto.
Yo diría: intente asegurarse de que esté por debajo de 7kb .
Si bien JWT no define ningún límite superior en la especificación ( http://www.rfc-editor.org/rfc/rfc7519.txt ), sí tenemos algunos límites operativos. Como un JWT está incluido en un encabezado HTTP, tenemos un límite superior ( SO: Máximo en valores de encabezado http ) de 8K en la mayoría de los servidores actuales.
Como esto incluye todos los encabezados de solicitud <8 kb, con 7 kb dando una cantidad razonable de espacio para otros encabezados. El mayor riesgo para ese límite serían las cookies (enviadas en encabezados y pueden aumentar de tamaño).
Como está cifrado y basado en 64, hay al menos un 33% de desperdicio de la cadena json original, así que verifique la longitud del token cifrado final.
Un último punto: los proxies y otros dispositivos de red pueden aplicar un límite arbitrario en el camino ...
Cuando use heroku, el encabezado estará limitado a 8k. Dependiendo de la cantidad de datos que esté utilizando en jwt2, se alcanzará. La solicitud, cuando es de gran tamaño, no tocará su instancia de nodo, el enrutador heroku la dejará antes de su capa de API.
Al procesar una solicitud entrante, un enrutador configura un búfer de recepción de 8 KB y comienza a leer la línea de solicitud HTTP y los encabezados de solicitud. Cada uno de estos puede tener una longitud máxima de 8 KB, pero juntos pueden tener más de 8 KB en total. Las solicitudes que contienen una línea de solicitud o una línea de encabezado de más de 8 KB serán descartadas por el enrutador sin ser enviadas.
Ver: Límites de Heroku