Câu trả lời:
Như bạn đã nói, không có độ dài tối đa được xác định trong RFC7519 ( https://tools.ietf.org/html/rfc7519 ) hoặc các RFC khác liên quan đến JWS hoặc JWE.
Nếu bạn sử dụng định dạng JSON Serialized hoặc JSON Flat Serialized, không có giới hạn và không có lý do gì để xác định giới hạn.
Nhưng nếu bạn sử dụng định dạng JSON Compact Serialized (định dạng phổ biến nhất), bạn phải lưu ý rằng nó phải càng ngắn càng tốt vì nó chủ yếu được sử dụng trong ngữ cảnh web. JWT 4kb là thứ mà bạn nên tránh.
Hãy cẩn thận để chỉ lưu trữ các tuyên bố hữu ích và thông tin tiêu đề.
Tôi cũng đang cố gắng tìm ra điều này.
Tôi muốn nói - hãy thử và đảm bảo rằng nó dưới 7kb .
Trong khi JWT không xác định giới hạn trên trong thông số kỹ thuật ( http://www.rfc-editor.org/rfc/rfc7519.txt ), chúng tôi có một số giới hạn hoạt động. Vì JWT được bao gồm trong tiêu đề HTTP, chúng tôi có giới hạn trên ( SO: Tối đa trên giá trị tiêu đề http ) là 8K trên phần lớn các máy chủ hiện tại.
Vì điều này bao gồm tất cả các tiêu đề Yêu cầu <8kb, với 7kb mang lại một khoảng trống hợp lý cho các tiêu đề khác. Rủi ro lớn nhất đối với giới hạn đó sẽ là cookie (được gửi trong tiêu đề và có thể trở nên lớn).
Vì nó được mã hóa và base64 nên có ít nhất 33% hao phí chuỗi json ban đầu, vì vậy hãy kiểm tra độ dài của mã thông báo được mã hóa cuối cùng.
Một điểm cuối cùng - proxy và các thiết bị mạng khác có thể áp dụng một giới hạn khả dụng trong quá trình ...
Khi sử dụng heroku , tiêu đề sẽ bị giới hạn ở 8k. Tùy thuộc vào lượng dữ liệu bạn đang sử dụng trên jwt2, nó sẽ được tiếp cận. Yêu cầu, khi quá kích thước, sẽ không chạm vào phiên bản nút của bạn, bộ định tuyến heroku sẽ thả nó trước lớp API của bạn ..
Khi xử lý một yêu cầu đến, một bộ định tuyến thiết lập một bộ đệm nhận 8KB và bắt đầu đọc dòng yêu cầu HTTP và các tiêu đề yêu cầu. Mỗi đoạn trong số này có thể dài tối đa 8KB, nhưng tổng cộng có thể lớn hơn 8KB. Các yêu cầu chứa dòng yêu cầu hoặc dòng tiêu đề dài hơn 8KB sẽ bị bộ định tuyến loại bỏ mà không gửi đi.
Xem: Giới hạn của Heroku