Risposte:
Come hai detto, non esiste una lunghezza massima definita nella RFC7519 ( https://tools.ietf.org/html/rfc7519 ) o in altre RFC relative a JWS o JWE.
Se utilizzi il formato JSON Serialized o JSON Flattened Serialized, non ci sono limitazioni e non c'è motivo per definire una limitazione.
Ma se utilizzi il formato JSON Compact Serialized (il formato più comune), devi tenere presente che dovrebbe essere il più breve possibile perché viene utilizzato principalmente in un contesto web. Un JWT 4kb è qualcosa che dovresti evitare.
Assicurati di memorizzare solo reclami utili e informazioni di intestazione.
Ho anche cercato di trovare questo.
Direi: prova ad assicurarti che sia inferiore a 7kb .
Sebbene JWT non definisca alcun limite superiore nelle specifiche ( http://www.rfc-editor.org/rfc/rfc7519.txt ), abbiamo alcuni limiti operativi. Poiché un JWT è incluso in un'intestazione HTTP, abbiamo un limite superiore ( SO: massimo sui valori dell'intestazione http ) di 8K sulla maggior parte dei server attuali.
Poiché questo include tutte le intestazioni di richiesta <8kb, con 7kb che offre una quantità ragionevole di spazio per altre intestazioni. Il rischio maggiore per quel limite sarebbe i cookie (inviati nelle intestazioni e possono diventare grandi).
Poiché è crittografato e basato su base64, c'è almeno il 33% di spreco della stringa json originale, quindi controlla la lunghezza del token crittografato finale.
Un ultimo punto: proxy e altri dispositivi di rete possono applicare un limite abitrario lungo il percorso ...
Quando si utilizza heroku, l'intestazione sarà limitata a 8k. A seconda di quanti dati stai utilizzando su jwt2, sarà raggiunto. La richiesta, se sovradimensionata, non toccherà l'istanza del tuo nodo, il router heroku la lascerà cadere prima del tuo livello API.
Durante l'elaborazione di una richiesta in arrivo, un router imposta un buffer di ricezione da 8 KB e inizia a leggere la riga di richiesta HTTP e le intestazioni di richiesta. Ciascuno di questi può avere una lunghezza massima di 8 KB, ma insieme possono essere più di 8 KB in totale. Le richieste contenenti una riga di richiesta o una riga di intestazione più lunga di 8 KB verranno eliminate dal router senza essere inviate.
Vedi: Limiti di Heroku