Learning Hub
Phát triển Web

Authentication và session

6 phút đọc·Cập nhật 2026-09-09

Authentication chứng minh người dùng là ai; session ghi nhớ bằng chứng đó qua nhiều request. Session an toàn cần identifier khó đoán, expiry phía server, cookie được bảo vệ và cơ chế logout hoặc revoke rõ ràng.

Authentication chứng minh người dùng là ai; session ghi nhớ bằng chứng đó qua nhiều request. Session an toàn cần identifier khó đoán, expiry phía server, cookie được bảo vệ và cơ chế logout hoặc revoke rõ ràng.

Nhìn nhanh

Câu hỏi Câu trả lời thực tế
Dùng khi nào? Sau login, server lưu session state và gửi cookie HttpOnly, Secure, SameSite; các request sau dùng cookie mà không gửi lại password.
Cần làm gì? Vẽ các tình huống login, request đã xác thực, hết hạn, logout và cookie bị đánh cắp cho ứng dụng note nhỏ.
Biết là đúng bằng cách nào? Session hết hạn hoặc bị revoke không mở được protected route, JavaScript phía client không đọc được cookie và đổi password làm mất hiệu lực session nhạy cảm.
Lỗi hay gặp? Không lưu raw password hay session secret sống lâu trong localStorage; password hashing và session protection giải quyết hai bài toán khác nhau.
flowchart LR
  A[Câu hỏi] --> B[Authentication và session]
  B --> C[Ví dụ nhỏ]
  C --> D[Bằng chứng]

Điểm quan trọng của sơ đồ là không dừng ở định nghĩa: hãy nối khái niệm với một ví dụ nhỏ và bằng chứng có thể quan sát.

Ví dụ đã phân tích

Sau login, server lưu session state và gửi cookie HttpOnly, Secure, SameSite; các request sau dùng cookie mà không gửi lại password.

Trước khi làm, hãy viết dấu hiệu thành công. Sau đó chỉ thay đổi một yếu tố, quan sát kết quả và ghi lại assumption. Với Authentication và session, cách này giúp tách điều bạn biết khỏi điều bạn chỉ đang đoán.

Thực hành trong 20–30 phút

Mục tiêu: Vẽ các tình huống login, request đã xác thực, hết hạn, logout và cookie bị đánh cắp cho ứng dụng note nhỏ.

  1. Ghi lại trạng thái ban đầu và điều bạn dự đoán.
  2. Thực hiện phiên bản nhỏ nhất, không thêm công cụ chưa cần thiết.
  3. Thay đổi đúng một input hoặc constraint rồi chạy lại.
  4. Lưu command, screenshot, output hoặc checklist làm bằng chứng.

Kết quả mong đợi: Session hết hạn hoặc bị revoke không mở được protected route, JavaScript phía client không đọc được cookie và đổi password làm mất hiệu lực session nhạy cảm.

Sai ở đâu và sửa thế nào

Không lưu raw password hay session secret sống lâu trong localStorage; password hashing và session protection giải quyết hai bài toán khác nhau.

Khi kết quả khác dự đoán, đừng đổi nhiều thứ cùng lúc. Kiểm tra input, version, environment, quyền truy cập và log trước; sau đó lặp lại từ ví dụ nhỏ nhất.

Định nghĩa hoàn thành

  • Tôi giải thích được khái niệm bằng ngôn ngữ của mình.
  • Tôi đã hoàn thành ví dụ nhỏ và giữ bằng chứng.
  • Tôi biết một failure mode và cách kiểm tra nó.
  • Người khác có thể làm lại mà không phải đoán bước còn thiếu.

Đi sâu hơn

Mở resource hoặc repository đi kèm ở cuối trang khi bạn cần implementation đầy đủ. Hãy kiểm tra version hiện hành trước khi dùng command trong dự án thật.