I’ve also been trying to find this.
I’d say – try and ensure it’s below 7kb.
Whilst JWT defines no upper limit in the spec (http://www.rfc-editor.org/rfc/rfc7519.txt) we do have some operational limits.
As a JWT is included in a HTTP header, we’ve an upper limit (SO: Maximum on http header values) of 8K on the majority of current servers.
As this includes all Request headers < 8kb, with 7kb giving a reasonable amount of room for other headers. The biggest risk to that limit would be cookies (sent in headers and can get large).
As it’s encrypted and base64ed there’s at least 33% wastage of the original json string, so do check the length of the final encrypted token.
One final point – proxies and other network appliances may apply an abitrary limit along the way…