ฉันต้องการทราบความยาวสูงสุดของ
โทเค็นเว็บ JSON (JWT)
ในรายละเอียดไม่มีข้อมูลเกี่ยวกับเรื่องนี้ อาจเป็นไปได้ว่าไม่มีข้อ จำกัด เรื่องความยาว?
ฉันต้องการทราบความยาวสูงสุดของ
โทเค็นเว็บ JSON (JWT)
ในรายละเอียดไม่มีข้อมูลเกี่ยวกับเรื่องนี้ อาจเป็นไปได้ว่าไม่มีข้อ จำกัด เรื่องความยาว?
คำตอบ:
ดังที่คุณกล่าวไม่มีความยาวสูงสุดที่กำหนดไว้ใน RFC7519 ( https://tools.ietf.org/html/rfc7519 ) หรือ RFC อื่น ๆ ที่เกี่ยวข้องกับ JWS หรือ JWE
หากคุณใช้รูปแบบ JSON Serialized หรือรูปแบบ JSON Flattened Serialized ไม่มีข้อ จำกัด และไม่มีเหตุผลที่จะกำหนดข้อ จำกัด
แต่ถ้าคุณใช้รูปแบบ JSON Compact Serialized (รูปแบบทั่วไป) คุณต้องจำไว้ว่าควรสั้นที่สุดเพราะส่วนใหญ่ใช้ในบริบทของเว็บ JWT 4kb เป็นสิ่งที่คุณควรหลีกเลี่ยง
ดูแลเฉพาะการอ้างสิทธิ์ที่เป็นประโยชน์และข้อมูลส่วนหัว
ฉันยังพยายามค้นหาสิ่งนี้
ผมว่า - ลองและให้แน่ใจว่ามันเป็นด้านล่าง 7kb
ในขณะที่ JWT กำหนดว่าไม่มีขีด จำกัด สูงสุดในข้อมูลจำเพาะ ( http://www.rfc-editor.org/rfc/rfc7519.txt ) เรามีข้อ จำกัด ในการปฏิบัติงานบางประการ เนื่องจาก JWT รวมอยู่ในส่วนหัว HTTP เราจึงมีขีด จำกัด สูงสุด ( SO: Maximum on http header values ) ที่ 8K บนเซิร์ฟเวอร์ปัจจุบันส่วนใหญ่
เนื่องจากรวมถึงส่วนหัวของคำขอทั้งหมด <8kb โดย 7kb จะให้พื้นที่สำหรับส่วนหัวอื่น ๆ ในปริมาณที่เหมาะสม ความเสี่ยงที่ใหญ่ที่สุดสำหรับขีด จำกัด นั้นคือคุกกี้ (ส่งในส่วนหัวและอาจมีจำนวนมาก)
เนื่องจากมีการเข้ารหัสและ base64ed จึงมีการสูญเสียสตริง json ดั้งเดิมอย่างน้อย 33% ดังนั้นโปรดตรวจสอบความยาวของโทเค็นที่เข้ารหัสขั้นสุดท้าย
จุดสุดท้าย - พร็อกซีและอุปกรณ์เครือข่ายอื่น ๆ อาจใช้ขีด จำกัด โดยปริยายระหว่างทาง ...
เมื่อใช้herokuส่วนหัวจะ จำกัด ไว้ที่ 8k ขึ้นอยู่กับจำนวนข้อมูลที่คุณใช้บน jwt2 ซึ่งจะเข้าถึงได้ คำขอเมื่อมีขนาดใหญ่เกินไปจะไม่แตะอินสแตนซ์โหนดของคุณเราเตอร์ heroku จะวางไว้ก่อนเลเยอร์ API ของคุณ ..
เมื่อประมวลผลคำขอที่เข้ามาเราเตอร์จะตั้งค่าบัฟเฟอร์การรับ 8KB และเริ่มอ่านบรรทัดคำขอ HTTP และส่วนหัวของคำขอ แต่ละอันมีความยาวได้สูงสุด 8KB แต่รวมกันได้มากกว่า 8KB คำขอที่มีบรรทัดคำขอหรือบรรทัดส่วนหัวที่ยาวกว่า 8KB จะถูกทิ้งโดยเราเตอร์โดยไม่ถูกส่ง
ดู: Heroku Limits