Supertest · JWT Authentication และ Request State
Agent และ Cookie State
เปรียบเทียบ stateless JWT request กับ stateful cookie agent
JWT request กับ cookie agent
JWT request มักเป็น stateless: แต่ละ request แนบ bearer token เอง ส่วน `request.agent(server)` เก็บ cookie state ระหว่าง request เหมาะกับ session-based login ที่ต้อง login ก่อนแล้วเรียก endpoint ถัดไป
agent เก็บ session cookieTS
เลือก state model ให้ตรงระบบจริง
| รูปแบบ | state อยู่ที่ไหน | เหมาะกับ |
|---|---|---|
| JWT + request | test ส่ง token ทุกครั้ง | API ที่ใช้ bearer authentication |
| agent + cookie | agent เก็บ Set-Cookie | session login หรือ browser-like flow |
| ส่ง cookie string เอง | test อ่านแล้ว set Cookie header | ต้องการควบคุม header แบบ explicit |
กฎสำคัญ
boundary
agent ไม่ใช่ฐานข้อมูล state
agent เก็บ request/session state ใน client จำลอง แต่ resource state ยังต้อง cleanup ที่ database
clarity
อย่าใช้ agent กับ JWT เพื่อความสั้น
ถ้า API เป็น stateless bearer flow ให้แนบ token ชัด ๆ เพื่อไม่ซ่อน auth state ที่ test กำลังพิสูจน์