Antworten:
Wie Sie sagten, ist im RFC7519 ( https://tools.ietf.org/html/rfc7519 ) oder anderen RFCs im Zusammenhang mit JWS oder JWE keine maximale Länge definiert .
Wenn Sie das JSON Serialized-Format oder das JSON Flattened Serialized-Format verwenden, gibt es keine Einschränkung und es gibt keinen Grund, eine Einschränkung zu definieren.
Wenn Sie jedoch das JSON Compact Serialized-Format (das am häufigsten verwendete Format) verwenden, müssen Sie berücksichtigen, dass es so kurz wie möglich sein sollte, da es hauptsächlich in einem Webkontext verwendet wird. Ein 4kb JWT ist etwas, das Sie vermeiden sollten.
Achten Sie darauf, nur nützliche Ansprüche und Header-Informationen zu speichern.
Ich habe auch versucht, dies zu finden.
Ich würde sagen - versuchen Sie sicherzustellen, dass es unter 7 KB ist .
Während JWT in der Spezifikation keine Obergrenze definiert ( http://www.rfc-editor.org/rfc/rfc7519.txt ), haben wir einige Betriebsgrenzen. Da ein JWT in einem HTTP-Header enthalten ist, haben wir auf den meisten aktuellen Servern eine Obergrenze ( SO: Maximum für http-Header-Werte ) von 8 KB.
Da dies alle Anforderungsheader <8 KB umfasst, bietet 7 KB ausreichend Platz für andere Header. Das größte Risiko für dieses Limit wären Cookies (die in Headern gesendet werden und groß werden können).
Da es verschlüsselt und base64ed ist, wird mindestens 33% der ursprünglichen JSON-Zeichenfolge verschwendet. Überprüfen Sie daher die Länge des endgültigen verschlüsselten Tokens.
Ein letzter Punkt: Proxys und andere Netzwerkgeräte können auf dem Weg ein beliebiges Limit festlegen ...
Bei Verwendung von Heroku ist der Header auf 8 KB begrenzt. Abhängig davon, wie viele Daten Sie auf jwt2 verwenden, werden sie erreicht. Wenn die Anforderung übergroß ist, wird Ihre Knoteninstanz nicht berührt. Der Heroku-Router löscht sie vor Ihrer API-Ebene.
Bei der Verarbeitung einer eingehenden Anforderung richtet ein Router einen 8-KB-Empfangspuffer ein und beginnt mit dem Lesen der HTTP-Anforderungszeile und der Anforderungsheader. Jedes von diesen kann höchstens 8 KB lang sein, zusammen kann es jedoch insgesamt mehr als 8 KB betragen. Anfragen, die eine Anforderungs- oder Kopfzeile enthalten, die länger als 8 KB ist, werden vom Router ohne Versand verworfen.
Siehe: Heroku-Grenzen