Session vs Token Authentication คืออะไร ต่างกันยังไง

Sesion Authentication
- เก็บ session data ในฝั่ง server เมื่อผู้ใช้ login สำเร็จ
- จากนั้น server ส่ง response กลับมา พร้อมทั้งเก็บ session ID ไว้ที่ cookie บนเว็บเบราว์เซอร์
- เมื่อมีการ request ไปที่ server ตัว session ID จะถูกแนบไปด้วยทุกครั้ง
- จากนั้นฝั่ง server ก็จะเปรียบเทียบว่าตรงกันหรือไม่ จากนั้นก็ให้เข้าถึงหน้าที่ต้องได้
ปลอดภัยน้อยกว่า Token Authentication - มักใช้กับ Server Side Rendering (SSR) เช่น Django, Laravel เป็นต้น
Token Authentication
- User ล็อกอินด้วย credentials เช่น username & password
- ฝั่ง server สร้าง JWT (JSON Web Token) ขึ้นมา แล้วส่งกลับไปที่ client
- ฝั่ง client เก็บ JWT ไว้บน Local Storage
- ฝั่ง client แนบ JWT เข้าไปกับ HTTP headers ทุกครั้ง เมื่อมีการ request ข้อมูลมาที่ฝั่ง server
- มักใช้สำหรับ RESTful APIs
- สเกลได้ดีกว่า Session Authentication เพราะเก็บ Token ไว้บน Local Stoarge
บทความแนะนำอ่านเพิ่มเติม: Authentication คืออะไร