Bài viết

Authentication & Authorization: Sự khác biệt cốt lõi và vai trò của JWT, OAuth2

Authentication và Authorization

Trong phát triển ứng dụng hiện đại, đặc biệt là những hệ thống có người dùng đăng nhập như web app, mobile app hoặc API backend – hai khái niệm bạn không thể làm ngơ chính là: AuthenticationAuthorization. Dù đôi khi được dùng lẫn lộn, nhưng sự khác biệt giữa chúng là rõ ràng và quan trọng.

Và khi nói đến việc thực hiện hai chức năng này một cách hiệu quả, JWT (JSON Web Token)OAuth2 chính là hai công nghệ phổ biến được sử dụng nhiều nhất hiện nay.


Sự khác biệt giữa Authentication và Authorization

Hiểu đơn giản:

  • Authentication là: Bạn là ai?
  • Authorization là: Bạn được phép làm gì?

Ví dụ thực tế: Khi bạn đăng nhập vào hệ thống quản lý của vietswiss, Authentication xác minh bạn là nhân viên đã đăng nhập, còn Authorization kiểm tra xem bạn có quyền truy cập vào bảng điều khiển quản trị hay không.


JSON Web Token (JWT): Xác thực phi trạng thái

JWT là một tiêu chuẩn mở giúp truyền thông tin an toàn giữa các bên bằng dạng token có cấu trúc. Nó đặc biệt phổ biến trong các hệ thống RESTful API nhờ vào khả năng xác thực không cần lưu session phía server.

Cách hoạt động của JWT:

  1. Người dùng đăng nhập → Server xác thực → Tạo token
  2. Token này được gửi về client và lưu trữ (thường là trong localStorage hoặc cookie)
  3. Mỗi lần client gọi API, token được đính kèm → Server đọc và xác minh token để xác định danh tính

Một token JWT thường gồm 3 phần: header, payload, và signature – tất cả được mã hóa base64, gọn nhẹ và dễ truyền qua HTTP.

⚠️ Lưu ý: JWT chỉ mã hóa, không mã hóa nội dung hoàn toàn – đừng lưu thông tin nhạy cảm như mật khẩu trong payload.


OAuth2: Ủy quyền an toàn giữa nhiều hệ thống

OAuth2 là một giao thức ủy quyền được thiết kế để cho phép bên thứ ba truy cập tài nguyên mà không cần chia sẻ mật khẩu. Đây là công nghệ đứng sau các nút “Login with Google/Facebook” mà bạn thường thấy.

Một ví dụ đơn giản:

  • Bạn dùng nút “Đăng nhập bằng Google” trên trang vietswiss
  • Hệ thống của chúng tôi chuyển hướng bạn tới Google
  • Sau khi xác nhận quyền, Google gửi về một authorization code
  • vietswiss dùng code này để lấy access token và truy cập thông tin cơ bản của bạn (tất nhiên, trong giới hạn bạn đã cho phép)

OAuth2 hỗ trợ nhiều flow khác nhau (authorization code, implicit, password, client credentials) – phù hợp cho các bối cảnh khác nhau như web app, mobile app, hoặc service-to-service.


Khi nào nên dùng JWT? Khi nào nên dùng OAuth2?

Để chọn công nghệ phù hợp, bạn có thể dựa vào những tình huống thực tế như sau:

Nên dùng JWT khi:

  • Bạn muốn xây dựng hệ thống xác thực riêng mà không cần tích hợp bên thứ ba.
  • Ứng dụng của bạn mang tính nội bộ, đơn giản, hoặc chỉ có một vài người dùng.
  • Bạn cần một giải pháp xác thực phi trạng thái – không cần lưu session trên server.

Nên dùng OAuth2 khi:

  • Ứng dụng của bạn cần cho phép người dùng đăng nhập bằng Google, Facebook, GitHub hoặc các dịch vụ bên ngoài khác.
  • Hệ thống cần truy cập API thay mặt người dùng (ví dụ: đọc email từ Gmail, truy cập lịch người dùng).
  • Bạn đang xây dựng ứng dụng có nhiều dịch vụ (microservices) hoặc liên kết chặt với hệ thống bên thứ ba.

👉 Trên thực tế, bạn có thể kết hợp cả hai: OAuth2 cung cấp access token và access token đó có thể được định dạng theo kiểu JWT để tăng hiệu quả và bảo mật.


Authentication và Authorization là nền tảng trong bất kỳ ứng dụng nào có người dùng.
Hiểu rõ sự khác biệt và cách áp dụng công nghệ như JWT hay OAuth2 sẽ giúp bạn xây dựng hệ thống an toàn, hiệu quả và dễ mở rộng.

Tại vietswiss, chúng tôi không chỉ phát triển giao diện đẹp mà còn luôn chú trọng đến cấu trúc bảo mật phía sau, giúp doanh nghiệp vận hành trơn tru trong thời đại số.

Chia sẻ bài viết

Sẵn sàng hiện thực hóa tầm nhìn của bạn?

Xây dựng dự án hiệu suất cao cùng vietswiss

Hãy để chúng tôi biến ý tưởng của bạn thành giải pháp số ấn tượng, thu hút khách hàng và mang lại thành công rõ rệt.