Truy cập OAuth 2.0 của Facebook cho Website

Quá trình ủy quyền OAuth 2.0 mà Facebook sử dụng là "Cấp mã ủy quyền". Hãy giới thiệu cách thực hiện nó và cách gỡ lỗi trong Apidog.

Minh Triết

Minh Triết

5 tháng 6 2025

Truy cập OAuth 2.0 của Facebook cho Website

Quá trình ủy quyền OAuth 2.0 được sử dụng bởi Facebook là "Cấp mã ủy quyền". Hãy giới thiệu cách thực hiện và cách gỡ lỗi nó trong Apidog.

OAuth 2.0 là gì?

OAuth 2.0 là một giao thức ủy quyền được sử dụng rộng rãi cho phép truy cập của bên thứ ba vào các tài nguyên được bảo vệ mà không cần thông tin xác thực của người dùng. Nó bao gồm bốn vai trò chính:

  1. Chủ sở hữu tài nguyên: Thông thường là người dùng sở hữu các tài nguyên được bảo vệ.
  2. Khách hàng: Ứng dụng bên thứ ba muốn truy cập dữ liệu của chủ sở hữu tài nguyên.
  3. Máy chủ ủy quyền: Xác thực chủ sở hữu tài nguyên và cấp quyền cho khách hàng.
  4. Máy chủ tài nguyên: Lưu trữ và quản lý các tài nguyên được bảo vệ, cung cấp API để truy cập.

Các dòng ủy quyền thông thường

Giao thức OAuth 2.0 thực hiện ủy quyền thông qua nhiều dòng ủy quyền khác nhau. Các dòng ủy quyền thông thường bao gồm:

Cách sử dụng Facebook OAuth 2.0 để đăng nhập vào các trang web bên thứ ba

Bước 1: Tạo ứng dụng và lấy ID khách hàng và bí mật khách hàng

Đầu tiên, bạn cần mở một tài khoản phát triển Facebook tại https://developers.facebook.com. Sau khi mở, hãy tạo một ứng dụng trong đó.

Facebook

Sau khi ứng dụng được tạo thành công, hãy nhấp vào tùy chọn [Cài đặt ứng dụng-> Cơ bản]. Số ứng dụng ở đây là ID khách hàng (Client ID), và khóa ứng dụng là bí mật khách hàng (Client Secret). Chúng tôi sẽ cần hai thuộc tính này sau này.

Bước 2: Cấu hình địa chỉ callback

Sau khi ứng dụng được tạo, bạn cũng cần đặt "địa chỉ callback" trong bảng điều khiển, nhấp vào tùy chọn [Bảng điều khiển -> Tùy chỉnh ứng dụng này], sau đó nhấp vào "Cài đặt đăng nhập Facebook" để vào giao diện cấu hình.

Trong mục "URI nhảy OAuth hợp lệ" trên giao diện cấu hình, hãy điền địa chỉ callback (Callback URL), đó là địa chỉ chuyển hướng. Thông thường, đó là tên miền của máy chủ của bạn (Facebook yêu cầu nó bắt đầu bằng https).

Nếu bạn chưa có, bạn có thể điền trước, miễn là bạn đảm bảo rằng tên miền có thể truy cập được. Sau khi hoàn thành cấu hình, hãy lưu lại.

Mục đích của việc chúng tôi cần "địa chỉ callback" là để thu thập mã ủy quyền (code) trên thanh địa chỉ. Thông thường, sau khi điền tên người dùng và mật khẩu trên trang đăng nhập OAuth 2.0, nó sẽ được chuyển hướng đến "địa chỉ callback" và có thể hiển thị trên thanh địa chỉ.

Nhận mã ủy quyền (code). Thanh địa chỉ dưới đây được sử dụng để thu thập giá trị mã theo cách thủ công:

Sau khi thông tin ở trên được cấu hình, chúng ta chính thức vào quy trình chính của ủy quyền OAuth 2.0.

Bước 3: Nhận mã truy cập

Khi hai bước trên đã sẵn sàng, chúng ta có thể yêu cầu một mã truy cập (Token). Chúng tôi sẽ trình bày bước này thông qua Apidog.

Apidog là một công cụ gỡ lỗi và quản lý API rất xuất sắc, bạn có thể nhận mã truy cập trực tiếp trong Apidog. Nếu bạn chưa cài đặt Apidog, hãy tải ngay một cái!

button
  1. Tạo yêu cầu HTTP Sau khi tạo một dự án HTTP trong Apidog, hãy mở nó và sau đó tạo một yêu cầu trong dự án, chọn tùy chọn "Chỉnh sửa tài liệu -> Xác thực -> OAuth 2.0".

2. Cấu hình ID khách hàng, Bí mật khách hàng và URL Callback Chế độ ủy quyền mặc định được chọn trên trang OAuth 2.0 trong Apidog là Mã ủy quyền, vì Facebook OAuth 2.0 cũng sử dụng Mã ủy quyền. Vì vậy, bạn không cần chuyển đổi ở đây.

Kế tiếp, tìm ID khách hàng và URL Callback ở phía dưới trang, và điền vào ID khách hàng, Bí mật khách hàng, và URL Callback đã cấu hình từ dịch vụ Facebook OAuth 2.0. Các tham số cụ thể là các cấu hình đã đề cập trong "Bước 1, Bước 2" ở trên.

3. Cấu hình URL Yêu cầu Mã ủy quyền Theo tài liệu chính thức của Facebook, trong quá trình xác thực OAuth 2.0, URL yêu cầu mã ủy quyền là: https://www.facebook.com/v19.0/dialog/oauth

Chỉ cần điền URL yêu cầu mã ủy quyền này vào Auth URL. URL này có thể được hiểu như là trang đăng nhập ủy quyền. Nó mở trang này (dưới dạng cửa sổ ở phía khách hàng) khi xác minh trạng thái đăng nhập lần đầu tiên, yêu cầu bạn nhập tên người dùng và mật khẩu của mình.

Thường thì, khi xây dựng thủ công một trang đăng nhập ủy quyền, cần có các tham số bổ sung trong URL ủy quyền, chẳng hạn như:

https://www.facebook.com/v19.0/dialog/oauth?
  client_id={app-id}
  &redirect_uri={redirect-uri}
  &state={state-param}

Chú ý: Các chuỗi tham số không nên có dấu ngắt dòng thông thường.

Tuy nhiên, trong Apidog, các tham số bổ sung sau URL cơ bản thường không cần thiết. Chỉ cần đường dẫn trước dấu hỏi "?" là cần thiết vì các tham số bắt buộc khác được cấu hình riêng trong các tùy chọn khác. Tất nhiên, nếu bạn muốn bao gồm một số tham số truy vấn, bạn cũng có thể thêm chúng bằng cách nhấp vào biểu tượng bên cạnh ô nhập này:

Chúng tôi cũng có thể mở rộng các tùy chọn "Thêm" và điền vào các giá trị cho các tham số cần được điền, chẳng hạn như điền "Scope" với quyền yêu cầu "public_profile". Quyền "public_profile" trong Facebook cho phép ứng dụng đọc các trường thông tin công khai mặc định của nút người dùng, và quyền này được cấp tự động cho tất cả các ứng dụng.

Trong tùy chọn "State", hãy điền vào "state", đây là để ngăn chặn giả mạo yêu cầu giữa các trang. Các nền tảng bên thứ ba thường yêu cầu điều này được điền, vì vậy chúng tôi thường điền vào, nếu không, có thể có lỗi khi nhận mã truy cập.

4. Cấu hình URL Yêu cầu Mã truy cập Theo tài liệu chính thức của Facebook, để nhận mã truy cập, URL yêu cầu là: https://graph.facebook.com/v19.0/oauth/access_token

Chỉ cần điền địa chỉ này vào trường nhập URL Mã truy cập. Tương tự, các tham số khác đã được cấu hình riêng trong các trường nhập khác, vì vậy chúng không cần phải được bao gồm trong URL.

5. Nhận Mã truy cập Khi tất cả các mục cấu hình đã nêu ở trên được thiết lập, bạn có thể nhấp vào nút "Nhận mã" để nhận mã truy cập.

Sau khi nhấp, nếu đó là lần đầu tiên bạn đăng nhập, một cửa sổ sẽ bật lên yêu cầu quyền của bạn, nơi bạn cần nhập tên người dùng và mật khẩu tài khoản Facebook của mình. Nếu bạn đang đăng nhập từ một thiết bị mới, bạn có thể cần email của bạn để xác minh bổ sung.

Sau khi nhập tên người dùng và mật khẩu, bạn sẽ được yêu cầu xác nhận quyền.

Nhấp vào xác nhận để hoàn thành quyền. Khi đã được ủy quyền, mã truy cập sẽ tự động được thu thập và hiển thị trên trang. Đồng thời, các thông tin khác được trả về bởi Facebook cũng sẽ được phân tích.

Bước 4: Truy cập Tài nguyên Mở Dựa trên Token Với mã truy cập (Token), bạn có thể sử dụng nó để truy cập các tài nguyên mở của Facebook. Bạn có thể xem loại tài nguyên mở nào có sẵn trong Facebook Graph API.

Ví dụ, API sau đây truy xuất ID và tên của người dùng. Nếu giao diện của bạn không trả về gì cả, bạn có thể cần kiểm tra xem bạn có quyền cần thiết hay không, như đã đề cập trong Mục 3 của "Bước 3", chỉ cần cấu hình trong Scope. https://graph.facebook.com/v12.0/me?fields=id,name

Khi gửi yêu cầu, Apidog sẽ tự động gắn token vào tiêu đề Xác thực và gửi đi kèm với "Bearer".

Nếu bạn muốn đính kèm token trong URL, bạn cũng có thể chỉnh sửa "Thêm Vị trí" của token trong các tùy chọn cấu hình trên trang, và chọn "Tham số truy vấn".

Tóm tắt

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 an toàn vào các tài nguyên được bảo vệ. Quy trình ủy quyền mã ủy quyền là một phương pháp ủy quyền phổ biến và được Facebook sử dụng.

Trong quá trình thực hiện, bạn cần tạo một ứng dụng, cấu hình một địa chỉ callback, nhận mã truy cập và sử dụng Apidog để gỡ lỗi. Sau khi nhận được mã truy cập, bạn có thể sử dụng token để gọi các tài nguyên mở của Facebook.

button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API