Google Account Linking API

Trang tham khảo này ghi lại các điểm cuối và giao diện do Google cung cấp mà ứng dụng của bạn sử dụng trong quy trình Liên kết tài khoản dựa trên OAuth.

Điều kiện tiên quyết và tiêu chuẩn

Để tương tác thành công với các điểm cuối này của Google, chế độ tích hợp của bạn phải tuân thủ các tiêu chuẩn sau:

  • OAuth 2.0: Tuân thủ RFC 6749.
  • Mã thông báo web JSON (JWT): Tuân thủ RFC 7519 (đối với tính năng Liên kết tinh giản và RISC).
  • Mã thông báo sự kiện bảo mật: Tuân thủ RFC 8417 (đối với RISC).
  • HTTPS: Tất cả các yêu cầu phải được thực hiện qua một kết nối HTTPS bảo mật.

URI chuyển hướng OAuth

Điểm cuối mà dịch vụ của bạn chuyển hướng trình duyệt của người dùng sau khi xác thực và đồng ý thành công. Tham số đường dẫn YOUR_PROJECT_ID là mã nhận dạng mà bạn định cấu hình trong quá trình đăng ký.

  • URL: https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
  • URL hộp cát: https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID

  • Phương thức: GET (sử dụng lệnh chuyển hướng của trình duyệt)

Tham số yêu cầu

Khi chuyển hướng người dùng trở lại Google, bạn phải thêm các tham số vào URL. Tuỳ thuộc vào quy trình OAuth được sử dụng, các tham số này được định dạng dưới dạng chuỗi truy vấn (quy trình Mã uỷ quyền) hoặc dưới dạng một phân mảnh của URL (luồng cấp quyền trực tiếp).

Tham số Mô tả
code (Bắt buộc đối với quy trình sử dụng mã uỷ quyền) Mã uỷ quyền do dịch vụ của bạn tạo.
state (Bắt buộc) Giá trị trạng thái chưa sửa đổi ban đầu nhận được từ Google.
access_token (Bắt buộc đối với quy trình ngầm định) Mã truy cập dài hạn do dịch vụ của bạn tạo.
token_type (Bắt buộc đối với Luồng ngầm) Phải là bearer.

Phản hồi lỗi

Nếu yêu cầu đến URI chuyển hướng OAuth bị định dạng sai, bạn sẽ gặp lỗi HTTP 400 Yêu cầu không hợp lệ. Nội dung phản hồi sẽ chứa một đối tượng JSON có cấu trúc sau:

Trường Mô tả
sendPostBody Xác định xem JS có nên chuyển hướng đến redirectUri bằng POST hay không. Thường là false trong trường hợp này.
errorMessage Thông báo lỗi sẽ hiển thị cho ứng dụng khi không thể hoàn tất việc chuyển hướng. Đối với các mảnh bị thiếu, đây là "A URI fragment or query string must be set."

Phản hồi lỗi OAuth 2.0

Nếu người dùng từ chối đồng ý hoặc dịch vụ của bạn gặp lỗi, thì dịch vụ của bạn phải chuyển hướng người dùng trở lại URI chuyển hướng OAuth bằng các tham số lỗi OAuth 2.0 tiêu chuẩn (chẳng hạn như error=access_denied). Google sẽ xử lý các tham số này và hiển thị cho người dùng một màn hình lỗi thích hợp.

RISC API (Không bắt buộc)

Được dịch vụ của bạn dùng để chủ động thông báo cho Google khi người dùng huỷ liên kết tài khoản của họ trên nền tảng của bạn bằng giao thức RISC, đảm bảo cả hai nền tảng luôn đồng bộ hoá.

  • URL: https://risc.googleapis.com/v1/events:publish
  • Phương thức: POST
  • Xác thực: Yêu cầu mã thông báo Tài khoản dịch vụ của Google có các quyền thích hợp.
  • Content-Type: application/json

Xác nhận quyền sở hữu mã thông báo sự kiện bảo mật

Mã thông báo sự kiện bảo mật mà bạn dùng để thông báo cho Google về các sự kiện thu hồi mã thông báo phải tuân thủ các yêu cầu trong bảng sau:

Xác nhận quyền sở hữu Mô tả
iss Issuer Claim: Đây là một URL mà bạn lưu trữ và được chia sẻ với Google trong quá trình đăng ký.
aud Audience Claim: Xác định Google là người nhận JWT. Bạn phải đặt giá trị này thành google_account_linking.
jti JWT ID Claim: Đây là một mã nhận dạng duy nhất mà bạn tạo cho mọi mã thông báo sự kiện bảo mật.
iat Issued At Claim (Được phát hành tại yêu cầu): Đây là giá trị NumericDate biểu thị thời điểm mã thông báo sự kiện bảo mật này được tạo.
toe Thời gian yêu cầu sự kiện: Đây là giá trị không bắt buộc NumericDate biểu thị thời gian thu hồi mã thông báo.
exp Expiration Time Claim (Yêu cầu về thời gian hết hạn): Không thêm trường này, vì sự kiện dẫn đến thông báo này đã diễn ra.
events Security Events Claim (Yêu cầu về sự kiện bảo mật): Đây là một đối tượng JSON và chỉ được chứa một sự kiện thu hồi mã thông báo duy nhất có các trường sau:

  • subject_type: Bạn phải đặt giá trị này thành oauth_token.
  • token_type: Đây là loại mã thông báo bị thu hồi, có thể là access_token hoặc refresh_token.
  • token_identifier_alg: Đây là thuật toán dùng để mã hoá mã thông báo và phải là hash_SHA512_double.
  • token: Đây là mã nhận dạng của mã thông báo bị thu hồi.

Để biết thêm thông tin về các loại và định dạng trường, hãy xem Mã thông báo web JSON (JWT)

Giao diện "Lật lại" của tính năng Lật ứng dụng

Đối với App Flip, ứng dụng di động của bạn phải trả về mã uỷ quyền hoặc mã truy cập cho ứng dụng Google.

Android (Kết quả từ ý định)

Ứng dụng của bạn được mở bằng một Ý định. Sau khi có sự đồng ý, quá trình này sẽ hoàn tất và trả về kết quả cho Google. Để biết thêm thông tin, hãy xem hướng dẫn triển khai Android.

  • Hành động: com.google.android.gms.auth.CODE_AVAILABLE
  • Ứng dụng khác: code, state, access_token, token_type.

Ứng dụng của bạn mở Google bằng cách sử dụng một lược đồ URL tuỳ chỉnh hoặc một Đường liên kết chung HTTPS. Để biết thêm thông tin, hãy xem hướng dẫn triển khai trên iOS.

  • Định dạng: <return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING