🔑

ระบบ Authentication

รากฐานของทุกเว็บและแอป ครอบคลุม Register, Login, JWT Token และการเข้ารหัสรหัสผ่าน

โฟลการทำงาน ระบบสมัครสมาชิก

👤ผู้ใช้กรอกฟอร์ม🌐หน้าเว็บตรวจสอบ Client⚙️API Serverเช็คซ้ำ🔐Hash รหัสbcrypt/Argon2🗄️Databaseบันทึกข้อมูล📧ยืนยันเมลส่ง Link ยืนยัน✅ สมัครสำเร็จ → Redirect ไปหน้า Login

📋 ขั้นตอนการทำงานโดยละเอียด

1
👤User
กรอก ชื่อ, อีเมล, รหัสผ่าน ในฟอร์มสมัครสมาชิก
2
🌐Frontend
ตรวจสอบฟอร์ม: รูปแบบอีเมล, ความแข็งแรงรหัสผ่าน, ช่องที่จำเป็น
3
📤Frontend
ส่ง POST /api/register พร้อมข้อมูลไปยัง API Server
4
⚙️API Server
ตรวจสอบว่ามีอีเมลนี้ในฐานข้อมูลแล้วหรือยัง
5
🔐API Server
เข้ารหัสรหัสผ่านด้วย bcrypt (salt rounds 10+)
6
🗄️Database
บันทึกข้อมูลผู้ใช้ใหม่ (id, name, email, hashed_password)
7
📧Email Svc
ส่งอีเมลยืนยัน พร้อม Link ที่ไม่ซ้ำกัน
8
User
คลิก Link ยืนยัน → บัญชีถูก activate → Redirect ไปหน้า Login

🧠 แนวคิดสำคัญที่ต้องรู้

🎫

JWT Token

JSON Web Token — เก็บข้อมูลผู้ใช้ในรูป string เข้ารหัส Server decode ได้โดยไม่ต้องเช็ค DB ประกอบด้วย Header.Payload.Signature

🔐

bcrypt Hashing

อัลกอริทึม Hash รหัสผ่านแบบ One-way แม้ DB รั่ว ก็ไม่สามารถ reverse ได้ ใช้ salt rounds ≥ 10

🔄

Refresh Token

Token อายุยาวสำหรับขอ Access Token ใหม่ เก็บใน HttpOnly Cookie Access Token อายุ 15 นาที Refresh Token อายุ 30 วัน

🌐

OAuth 2.0

Login ด้วย Google / Facebook / Apple ผู้ให้บริการ authenticate แทน ส่ง Token กลับมา ไม่ต้องเก็บรหัสผ่านเอง

📱

MFA / 2FA

Multi-Factor Authentication หลังกรอกรหัสผ่านให้ยืนยันด้วย OTP (SMS / Google Authenticator) ลด Account Hijacking ได้มาก

⚖️

Session vs Token

Session เก็บ state บน Server (DB/Redis), Token (JWT) เป็น Stateless API และแอปมือถือนิยม Token เว็บแบบดั้งเดิมนิยม Session

ต้องการระบบ Authentication ที่ปลอดภัย? 🔑

เราสร้างระบบ Login ที่ปลอดภัย พร้อม JWT, OAuth, และ 2FA

← กลับหน้าเรียนติดต่อเรา