1. Authentication & Authorization là gì?
Hai khái niệm này thường đi cùng nhau nhưng khác nhau hoàn toàn.
Authentication – Xác thực
trả lời cho câu hỏi bạn là ai
Ví dụ:
Đăng nhập bằng:
- Username + Password
- Access Token
- JWT
- OAuth 2.0
Server xác định danh tính của User.
Authorization – Phân quyền
trả lời cho câu hỏi bạn có quyền làm những gì
Ví dụ:
User A:
→ Xem profile
→ Không được xóa user khác
Admin:
→ Xem user
→ Tạo user
→ Xóa user
tóm lại authentication là để đang nhập xát định bạn là ai authorization là để phân quyền cho phép bạn được làm và
không được làm gì.
2. Authentication hoạt động như thế nào?
Ví dụ đăng nhập:
POST /login
{
"email": "[email protected]",
"password": "123456"
}
Server:
1. Tìm User
2. Kiểm tra password
3. Xác thực thành công
4. Tạo Access Token
5. Trả Token
Response:
{
"accessToken": "eyJ..." ( đây còn được gọi là token lấy cái này để phân quyền user)
}
Client sử dụng token cho những request tiếp theo:
Authorization: Bearer eyJ...
3. Authentication khác Authorization
Đây là phần cần nhớ nhất.
Ví dụ User đăng nhập thành công:
Authentication
→ User là Nguyễn Văn A
Sau đó User gọi:
DELETE /users/10
Server kiểm tra:
User là ai?
→ Nguyễn Văn A
User có quyền DELETE User không?
→ Không
Kết quả:
403 Forbidden
Tức là:
Authentication
→ Xác định danh tính
Authorization
→ Kiểm tra quyền
4. Role-Based Authorization
Cách phổ biến là phân quyền theo Role ( vai trò)
Ví dụ:
USER
ADMIN
MANAGER
user chỉ có quyền xem profile và chỉnh sửa profile của chính họ
Manager chỉ có quyển quản lý các đơn hàng
Admin quản lý tất cả role user
5. Role và Permission
Hai khái niệm này cũng nên phân biệt.
Role
Đại diện cho một nhóm quyền.
ADMIN
USER
MANAGER
Permission
Quyền cụ thể:
USER_READ
USER_CREATE
USER_UPDATE
USER_DELETE
6. Authentication không chỉ là Login
Authentication có thể sử dụng nhiều cơ chế:
Username + Password
Cách phổ biến nhất khi login.
Session
Server lưu session và Client giữ session identifier.
JWT
Server sử dụng token để xác định User.
OAuth 2.0
Thường dùng khi muốn cấp quyền truy cập thông qua một hệ thống Identity/Authorization khác.







Khoá học lập trình game con rắn cho trẻ em




