Phân biệt OAuth và JWT
Last updated: September 12, 2025 Xem trên toàn màn hình



- 10 Sep 2023
Định luật Murphy giải thích tại sao chúng ta luôn gặp xui xẻo vào những lúc tưởng thuận lợi 687
- 04 Jan 2023
Phát triển phần mềm linh hoạt theo mô hình Big Bang 606
- 18 May 2021
Cây cầu hiện đại vô dụng nhất thế giới và câu chuyện cái kết của thay đổi yêu cầu 546
- 01 Mar 2021
Ý nghĩa và bài học rút ra từ truyện thầy bói xem voi 451
- 03 Mar 2020
Giả định (Assumption ) là gì? Tại sao giả định rất quan trọng với dự án? 436
- 01 Apr 2023
Bí quyết đàm phán tạo ra giá trị từ câu chuyện Chia Cam 428
- 12 Apr 2023
Phương pháp 6 chiếc mũ tư duy là gì? Vận dụng trong điều hành cuộc họp hiệu quả 422
- 03 May 2022
Mô hình Hybrid Agile là gì? 413
- 18 Mar 2021
Kỹ thuật ước lượng dự án phần mềm linh hoạt dựa vào Story Point - phương pháp T-Shirt Sizing 406
- 07 Aug 2019
Câu chuyện thanh gỗ ngắn và bài học kinh doanh cho Doanh nghiệp 352
- 02 Aug 2023
Tổng hợp một số project tham khảo khi xây dựng các ứng dụng theo mô hình Microservices 344
- 14 Apr 2019
Product Backlog là gì? Các đặc điểm cơ bản của một Product Backlog 336
- 11 Sep 2024
Mindset, skillset, toolset là gì? 327
- 20 Jul 2021
Quản lý và đánh giá công việc theo quy trình TIGO SmartWork 314
- 01 Aug 2023
Phân tích yêu cầu phần mềm sẽ nhìn vào thực trạng (AS-IS) hay tương lai (TO-BE)? 313
- 02 Aug 2021
Product Owner làm gì trước khi bắt đầu sprint đầu tiên của dự án (Sprint Zero)? 310
- 23 Jun 2024
Người trí tuệ không tranh cãi ĐÚNG/SAI 272
- 28 Jun 2024
Tại sao các kỹ sư IT giỏi nhất lại là những người theo thuyết bất khả tri về công nghệ (technology agnostics)? 267
- 19 Mar 2023
Post-mortem và Retrospective: Khác biệt là gì? 227
- 08 Jan 2022
Yêu cầu thay đổi (Change Request) là gì? Làm thế nào để kiểm soát Change Request? 199
- 24 Mar 2019
Scrum giống như bà mẹ chồng, giúp bạn nhìn ra các lỗi sai 184
- 11 Sep 2022
Từ truyện “Thầy bói xem voi” tới quản trị bằng Tư Duy Hệ Thống 181
- 10 May 2021
Phát triển Phần mềm Tinh gọn (Lean Software Development) 180
- 08 Feb 2021
Quy trình nâng cấp phần mềm quản trị doanh nghiệp TIGO ERP 166
- 21 Apr 2020
Bảo trì phần mềm là gì? Phân biệt các loại bảo trì 156
- 14 Dec 2022
Phương pháp kiểm tra Fagan Inspection là gì? 152
- 09 Aug 2024
Latency (độ trễ) là gì? 150
- 14 Aug 2024
Eventual Consistency và Strong Consistency trong Cơ sở dữ liệu phân tán 139
- 05 Dec 2022
Hỏi 5 lần (5 WHYs) – Kỹ thuật "đào" tận gốc cốt lõi vấn đề 130
- 10 Aug 2020
Bạn có biết quy tắc thất bại nhanh: Fail early, fail often, fail cheap, but always fail forward 92
- 22 Jul 2020
Quản lý dự án phần mềm trong thực tế và câu chuyện thành công của InfoSys 86
- 08 Aug 2024
Phân biệt mô hình MLP với mô hình BVP 81
- 16 May 2025
Phân biệt Statement Of Work (SOW) và Project Scope Statement 75
- 13 Apr 2025
Phân biệt MLP (Minimum Lovable Product) và State-of-the-art Product 67
- 02 Aug 2022
BVP (Billable Viable Product) là gì? 64
- 04 Feb 2022
Phân biệt lập trình viên (programmer) và kỹ sư phần mềm (software engineer) 60
- 11 Mar 2025
Thiên hướng Hành động (Bias for Action) và Thiên hướng Quy trình (Bias for Process) tác động tiêu cực tới "đổi mới và sáng tạo" như thế nào? 49
- 29 Aug 2023
Phân biệt Accountable và Responsible? 47
- 04 Mar 2025
So sánh các giải pháp Sales Loft, Power BI và Salesforce 40
- 15 May 2025
Hiệu quả năng lượng trong phần mềm (Energy Efficiency in Software) là gì? 37
- 01 Jun 2025
Thiết Kế Hướng Miền (Domain-Driven Design) hình thành như thế nào trong kiến trúc Lưới Dữ Liệu (Data Mesh)? 35
- 29 Jul 2023
Giải mã 10 "Pain Points" của Big Data: Khi "mỏ vàng dữ liệu" vẫn không thể khai thác 33
- 20 Apr 2025
“3-point messaging rule” là gì? 27
- 05 Aug 2025
"Nói láo" khác với "nói dối" như thế nào? 27
- 16 Apr 2025
Lãnh đạo linh hoạt: Hành động (Bias for Action) hay không hành động (Non-Action)? 25
- 01 Apr 2025
CTO ra quyết định như thế nào? 23
- 30 Aug 2024
Friction points (điểm ma sát) là gì? 22
- 15 Aug 2025
Dự án phần mềm bị trì hoãn và vấn đề "akrasia" 22
- 01 Jun 2025
PMP Cheat Sheet: 25 Cặp Thuật Ngữ Dễ Nhầm Lẫn 21
- 08 Sep 2025
Tâm Lý Phản Kháng (Reactance): Vì Sao Càng Cấm, Người Ta Càng Muốn Làm? 6
Hiểu đúng về OAuth và JWT: Khác nhau chỗ nào, dùng khi nào?
Trong thế giới phát triển ứng dụng hiện đại, việc xác thực (authentication) và ủy quyền (authorization) luôn là hai yếu tố quan trọng để bảo mật hệ thống. Hai khái niệm thường xuyên đi cùng nhau là OAuth và JWT (JSON Web Token). Tuy nhiên, không ít người dễ nhầm lẫn khi đặt chúng cạnh nhau.
Hãy cùng phân tích để hiểu rõ: OAuth là gì, JWT là gì, khác nhau ra sao và nên dùng khi nào?
OAuth là gì?
Định nghĩa: OAuth là một authorization framework (khung ủy quyền chuẩn), cho phép người dùng cấp cho ứng dụng bên thứ ba quyền truy cập giới hạn vào dữ liệu của họ mà không cần chia sẻ mật khẩu.
Cách hoạt động: OAuth định nghĩa một luồng (flow) quen thuộc, ví dụ: “Login with Google”. Người dùng đăng nhập Google, sau đó Google phát cho ứng dụng một access token. Với token này, ứng dụng có thể thay mặt người dùng gọi API để truy cập tài nguyên.
Use cases phổ biến:
- Đăng nhập mạng xã hội (Login with Facebook/Google/Apple)
- Cho phép ứng dụng bên ngoài truy cập dữ liệu (ví dụ: Google Calendar, Google Photos)
- Tích hợp giữa các dịch vụ, nơi một service có thể dùng API của service khác.
JWT (JSON Web Token) là gì?
Định nghĩa: JWT là một chuẩn token format nhỏ gọn, an toàn với URL, dùng để chứa các claims (thông tin về user hoặc entity).
Cách hoạt động: JWT là một token tự chứa (self-contained), bao gồm 3 phần:
- Header – thông tin về loại token & thuật toán ký
- Payload – các claims (ví dụ: userId, quyền hạn, thời gian hết hạn)
- Signature – chữ ký số, giúp xác minh tính toàn vẹn và nguồn gốc token
Use cases phổ biến:
- Stateless authentication: Server không cần lưu session trong DB, chỉ cần xác minh JWT do client gửi lên.
- Trao đổi dữ liệu an toàn giữa các dịch vụ hoặc microservices.
Khác biệt chính giữa OAuth và JWT
Tiêu chí | OAuth | JWT |
---|---|---|
Mục đích | Framework ủy quyền (delegation) | Định dạng token để xác thực & truyền thông tin |
Phạm vi | Gồm nhiều flow phức tạp (Authorization Code, Implicit, Client Credentials, v.v.) | Một chuẩn token đơn giản, dễ parse |
Mối quan hệ | OAuth có thể sử dụng JWT làm access token | JWT thường được sinh ra trong flow OAuth |
Hãy hình dung bạn nhấn vào nút “Login with Google” trong một ứng dụng. Luồng OAuth sẽ diễn ra như sau:
Giải thích nhanh sơ đồ:
- Người dùng đăng nhập & chấp nhận cho ứng dụng quyền truy cập.
- Google phát hành Access Token (thường ở dạng JWT).
- Ứng dụng dùng JWT này để gọi API thay mặt người dùng.
- API kiểm tra JWT (xác minh chữ ký, hạn sử dụng, quyền hạn).
- Nếu hợp lệ → dữ liệu được trả về cho ứng dụng.
Best Fit: Nên dùng cái nào?
Dùng OAuth khi:
Bạn cần cho phép ứng dụng bên ngoài truy cập tài nguyên thay mặt người dùng.
→Ví dụ: Cho phép một app quản lý ảnh truy cập vào Google Photos của bạn.
Dùng JWT khi:
Bạn cần một cơ chế xác thực stateless, gọn nhẹ, không lưu session ở server.
→Ví dụ: API serverless, microservices giao tiếp với nhau.
Kết luận
- OAuth = Quy trình ủy quyền (làm thế nào để ứng dụng được phép truy cập tài nguyên).
- JWT = Định dạng token (cách đóng gói & xác minh thông tin người dùng).
- Chúng không thay thế nhau, mà thường đi cùng nhau. Trong nhiều hệ thống, OAuth phát hành JWT làm access token.
Nếu bạn là developer:
- Khi xây app có tích hợp dịch vụ ngoài (Google, Facebook, GitHub) → dùng OAuth.
- Khi xây API backend/frontend cần xác thực nhanh, không lưu session → dùng JWT.