Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เก็บ Credentials ใน Local Storage อย่างปลอดภัย

อย่าเก็บ Credentials ตรงๆ ใช้ Token แทน

Local Storage อ่านได้จาก JavaScript ทุกตัวบน Domain เดียวกัน (XSS Risk)

แนวทางที่ปลอดภัย

  1. Login สำเร็จ -> Server สร้าง **Random Token** (ไม่เกี่ยวกับ Password)
  2. บันทึก Token ใน Database พร้อม Expiry Date และ User ID
  3. ส่ง Token ให้ Client เก็บใน localStorage.setItem('auth_token', token)
  4. Request ต่อไป ส่ง Token ไปใน Header (Authorization: Bearer <token>)
  5. Server Verify Token + Expiry -> Authorized
  6. Logout/Expire -> ลบ Token จาก DB และ LocalStorage

ข้อดี

  • Password ไม่อยู่ใน Browser เลย
  • Token หมดอายุ/เพิกถอนได้
  • แยก Device/Session ได้