Quy trình xác thực OAuth 2.0 của Twitter, được biết đến với tên gọi "Mã ủy quyền với PKCE (Chìa khóa chứng minh cho việc trao đổi mã)", là một quá trình quan trọng để tích hợp đăng nhập Twitter (nay đã chuyển sang X) vào các trang web bên thứ ba.
Để tìm hiểu và hưởng lợi từ tất cả những lợi ích mà Apidog mang lại, hãy nhấn vào nút bên dưới!
Bài viết này cung cấp một hướng dẫn toàn diện về cách thực hiện quy trình này và gỡ lỗi nó bằng cách sử dụng Apidog. Bắt đầu với khái niệm cơ bản của OAuth 2.0.

OAuth 2.0 là gì?
OAuth 2.0 là một giao thức ủy quyền tiêu chuẩn mở cho phép các ứng dụng bên thứ ba truy cập tài nguyên được bảo vệ mà không cần cung cấp tên người dùng và mật khẩu của người dùng. Nó cho phép người dùng ủy quyền cho các ứng dụng bên thứ ba truy cập tài nguyên được bảo vệ của họ mà không cần tiết lộ trực tiếp thông tin xác thực của họ. OAuth 2.0 được sử dụng rộng rãi trong các ứng dụng web và di động để cung cấp một cơ chế ủy quyền an toàn.
Giao thức OAuth 2.0 bao gồm các vai trò sau:
- Chủ sở hữu tài nguyên: Thông thường là người dùng, người sở hữu tài nguyên được bảo vệ, chẳng hạn như hình ảnh, hồ sơ cá nhân, v.v.
- Khách hàng: Ứng dụng bên thứ ba muốn truy cập tài nguyên của chủ sở hữu tài nguyên.
- Máy chủ ủy quyền: Máy chủ chịu trách nhiệm xác thực chủ sở hữu tài nguyên và ủy quyền cho khách hàng truy cập tài nguyên.
- Máy chủ tài nguyên: Máy chủ lưu trữ các tài nguyên được bảo vệ và cung cấp API để truy cập chúng.

Các luồng ủy quyền phổ biến
Giao thức OAuth 2.0 thực hiện ủy quyền thông qua nhiều luồng ủy quyền khác nhau. Các luồng ủy quyền phổ biến bao gồm:
- Mã ủy quyền: Khách hàng chuyển hướng người dùng đến máy chủ ủy quyền. Sau khi người dùng đăng nhập và cấp quyền, máy chủ ủy quyền trả lại một mã ủy quyền cho khách hàng. Khách hàng sau đó trao đổi mã ủy quyền cùng với thông tin xác thực của mình để nhận một mã truy cập.
- Mã ủy quyền với PKCE (Chìa khóa chứng minh cho việc trao đổi mã): Tương tự như quy trình mã ủy quyền tiêu chuẩn, nhưng khách hàng tăng cường bảo mật bằng cách sử dụng PKCE (Chìa khóa chứng minh cho việc trao đổi mã).
- Cung cấp thông tin đăng nhập mật khẩu của chủ sở hữu tài nguyên: Chủ sở hữu tài nguyên cung cấp trực tiếp tên người dùng và mật khẩu của họ cho khách hàng. Khách hàng sau đó sử dụng những thông tin xác thực này để yêu cầu mã truy cập từ máy chủ ủy quyền.
- Cung cấp thông tin đăng nhập của khách hàng: Khách hàng trực tiếp yêu cầu mã truy cập từ máy chủ ủy quyền bằng cách sử dụng thông tin xác thực của chính nó. Luồng này phù hợp với những trường hợp mà khách hàng cần truy cập vào tài nguyên.
- Cung cấp ngầm: Được sử dụng để nhận mã truy cập trực tiếp từ khách hàng trong một ứng dụng dựa trên trình duyệt. Luồng này thường được sử dụng cho các ứng dụng frontend web.
Cách đăng nhập vào các trang web bên thứ ba sử dụng Twitter OAuth
Bước 1: Nhận Client ID và Client Secret
Đầu tiên, hãy truy cập Trung tâm nhà phát triển Twitter và tạo hoặc truy cập tài khoản của bạn. Tiến hành tạo một ứng dụng nếu ứng dụng đó chưa được tạo tự động.

Trong cài đặt ứng dụng, tìm phần "Cài đặt xác thực người dùng" và nhấn "Chỉnh sửa" để cấu hình các quyền theo nhu cầu kinh doanh của bạn.

Tiếp theo, thiết lập URL callback (Redirect URI) và cung cấp một URL trang web. Lưu cài đặt để tạo Client ID và Client Secret. Hãy chắc chắn sao chép và lưu trữ an toàn những thông tin xác thực này.

Sau khi điền vào cấu hình ở trên, nhấn "Lưu" để lưu lại. Vào thời điểm này, Client ID (Client ID) và Client Secret (Client Secret) sẽ được tạo ra. Hãy nhớ sao chép chúng và lưu lại.
Nếu bạn quên chúng, bạn cần phải đặt lại chúng. Bạn có thể tạo mới, nhấn vào "Khóa và mã thông báo" trong ứng dụng và cuộn xuống trang để xem.


Bước 2: Nhận mã truy cập
Với các yêu cầu ban đầu đã được thiết lập, hãy tiến hành nhận mã truy cập. Sử dụng Apidog, một công cụ quản lý và gỡ lỗi API mạnh mẽ, cho buổi trình diễn này.

- Tạo một yêu cầu HTTP trong Apidog và chọn tùy chọn OAuth 2.0 trong phần "Chỉnh sửa tài liệu -> Xác thực -> OAuth 2.0."

2. Chọn chế độ ủy quyền PKCE vì Twitter OAuth 2.0 sử dụng Mã ủy quyền với PKCE.

3. Cấu hình Client ID, Client Secret và Redirect URL nhận được từ Twitter OAuth 2.0.

Đặt URL yêu cầu mã ủy quyền thành https://twitter.com/i/oauth2/authorize.

Cấu hình các tham số bổ sung như Scope, Code Challenge Method và State nếu cần.
Chỉ định URL yêu cầu mã truy cập là https://api.twitter.com/2/oauth2/token.
Nhấn "Lấy mã" để bắt đầu quá trình lấy mã. Xác thực bằng thông tin xác thực Twitter của bạn nếu được yêu cầu.

Chú ý:

Bước 3: Truy cập tài nguyên công khai bằng mã token
Khi bạn đã nhận được mã truy cập, bạn có thể sử dụng nó để truy cập các tài nguyên công khai của Twitter. Apidog tự động đính kèm mã token vào trường Authorization của tiêu đề yêu cầu dưới dạng mã Bearer. Ngoài ra, bạn có thể cấu hình vị trí của mã token trong các tham số truy vấn của URL.

Kết luận
Tích hợp dịch vụ Twitter OAuth 2.0 cho đăng nhập vào trang web bên thứ ba bao gồm ba bước chính: tạo một ứng dụng trên bảng điều khiển nhà phát triển Twitter, xây dựng trang đăng nhập và truy cập các tài nguyên công khai với mã truy cập đã nhận.
OAuth 2.0 là một giao thức ủy quyền mạnh mẽ, với Twitter sử dụng luồng Mã ủy quyền với PKCE. Các công cụ như Apidog giúp đơn giản hóa quy trình xác thực OAuth 2.0, tạo điều kiện thuận lợi cho việc lấy mã và truy cập tài nguyên.