Trang này được dịch bởi Cloud Translation API.
Switch to English

Liên kết tài khoản Google với OAuth

Các tài khoản được liên kết bằng cách sử dụng các luồng mã ủy quyềnngầm định OAuth 2.0 tiêu chuẩn ngành. Dịch vụ của bạn phải hỗ trợ ủy quyền tuân thủ OAuth 2.0 và các điểm cuối trao đổi mã thông báo .

Theo quy trình ngầm định , Google mở điểm cuối ủy quyền của bạn trong trình duyệt của người dùng. Sau khi đăng nhập thành công, bạn trả lại mã thông báo truy cập tồn tại lâu dài cho Google. Mã thông báo truy cập này hiện được bao gồm trong mọi yêu cầu được gửi từ Google.

Trong luồng mã ủy quyền , bạn cần hai điểm cuối:

  • Điểm cuối ủy quyền , hiển thị giao diện người dùng đăng nhập cho những người dùng chưa đăng nhập của bạn. Điểm cuối ủy quyền cũng tạo mã ủy quyền ngắn hạn để ghi lại sự đồng ý của người dùng đối với quyền truy cập được yêu cầu.

  • Điểm cuối trao đổi mã thông báo , chịu trách nhiệm cho hai loại trao đổi:

    1. Trao đổi mã ủy quyền lấy mã thông báo làm mới tồn tại lâu và mã thông báo truy cập tồn tại trong thời gian ngắn. Việc trao đổi này xảy ra khi người dùng thực hiện quy trình liên kết tài khoản.
    2. Đổi mã thông báo làm mới tồn tại lâu lấy mã thông báo truy cập tồn tại trong thời gian ngắn. Việc trao đổi này xảy ra khi Google cần mã thông báo truy cập mới vì mã này đã hết hạn.

Chọn luồng OAuth 2.0

Mặc dù quy trình ngầm định dễ triển khai hơn, nhưng Google khuyến nghị rằng các mã thông báo truy cập được cấp bởi quy trình ngầm định không bao giờ hết hạn. Điều này là do người dùng buộc phải liên kết lại tài khoản của họ sau khi mã thông báo hết hạn với quy trình ngầm định. Nếu bạn cần hết hạn mã thông báo vì lý do bảo mật, chúng tôi thực sự khuyên bạn nên sử dụng quy trình mã ủy quyền để thay thế.

Hướng dẫn thiết kế

Phần này mô tả các yêu cầu thiết kế và đề xuất cho màn hình người dùng mà bạn lưu trữ cho các luồng liên kết OAuth. Sau khi được gọi bởi ứng dụng của Google, nền tảng của bạn hiển thị đăng nhập vào trang Google và màn hình liên kết tài khoản với người dùng. Người dùng được chuyển hướng trở lại ứng dụng của Google sau khi họ đồng ý liên kết các tài khoản.

Hình này cho thấy các bước để người dùng liên kết tài khoản Google của họ với hệ thống xác thực của bạn. Ảnh chụp màn hình đầu tiên hiển thị liên kết do người dùng khởi tạo từ nền tảng của bạn. Hình ảnh thứ hai cho thấy người dùng đăng nhập vào Google, trong khi hình thứ ba hiển thị sự đồng ý và xác nhận của người dùng đối với việc liên kết tài khoản Google của họ với ứng dụng của bạn. Ảnh chụp màn hình cuối cùng cho thấy một tài khoản người dùng được liên kết thành công trong ứng dụng Google.
Hình 1. Tài khoản liên kết đăng nhập của người dùng với Google và màn hình chấp thuận.

Yêu cầu

  1. Bạn phải thông báo rằng tài khoản của người dùng sẽ được liên kết với Google, không phải một sản phẩm cụ thể của Google như Google Home hoặc Google Assistant.

khuyến nghị

Chúng tôi khuyên bạn nên làm như sau:

  1. Hiển thị Chính sách Bảo mật của Google. Bao gồm một liên kết đến Chính sách quyền riêng tư của Google trên màn hình chấp thuận.

  2. Dữ liệu được chia sẻ. Sử dụng ngôn ngữ rõ ràng và ngắn gọn để cho người dùng biết dữ liệu của họ mà Google yêu cầu và lý do tại sao.

  3. Gọi hành động rõ ràng. Nêu lời gọi hành động rõ ràng trên màn hình lấy sự đồng ý của bạn, chẳng hạn như “Đồng ý và liên kết”. Điều này là do người dùng cần hiểu dữ liệu nào họ cần chia sẻ với Google để liên kết tài khoản của họ.

  4. Khả năng hủy bỏ. Cung cấp cách để người dùng quay lại hoặc hủy, nếu họ chọn không liên kết.

  5. Quy trình đăng nhập rõ ràng. Đảm bảo rằng người dùng có phương pháp rõ ràng để đăng nhập vào tài khoản Google của họ, chẳng hạn như các trường cho tên người dùng và mật khẩu của họ hoặc Đăng nhập bằng Google .

  6. Khả năng hủy liên kết. Cung cấp cơ chế để người dùng hủy liên kết, chẳng hạn như URL đến cài đặt tài khoản của họ trên nền tảng của bạn. Ngoài ra, bạn có thể bao gồm một liên kết đến Tài khoản Google , nơi người dùng có thể quản lý tài khoản được liên kết của họ.

  7. Khả năng thay đổi tài khoản người dùng. Đề xuất phương pháp để người dùng chuyển đổi (các) tài khoản của họ. Điều này đặc biệt có lợi nếu người dùng có xu hướng có nhiều tài khoản.

    • Nếu người dùng phải đóng màn hình chấp thuận để chuyển đổi tài khoản, hãy gửi lỗi có thể khắc phục cho Google để người dùng có thể đăng nhập vào tài khoản mong muốn bằng liên kết OAuth và quy trình ngầm định .
  8. Bao gồm logo của bạn. Hiển thị logo công ty của bạn trên màn hình chấp thuận. Sử dụng các nguyên tắc phong cách của bạn để đặt logo của bạn. Nếu bạn cũng muốn hiển thị biểu trưng của Google, hãy xem Biểu trưng và nhãn hiệu .

Định cấu hình dự án

Để định cấu hình dự án của bạn để sử dụng liên kết tài khoản OAuth:

  1. Go to the Google API Console.
  2. Nhấp vào Tạo dự án .
  3. Nhập tên hoặc chấp nhận đề xuất được tạo.
  4. Xác nhận hoặc chỉnh sửa bất kỳ trường nào còn lại.
  5. Nhấp vào Tạo .

Để xem ID dự án của bạn:

  1. Go to the Google API Console.
  2. Tìm dự án của bạn trong bảng trên trang đích. ID dự án xuất hiện trong cột ID .

Triển khai máy chủ OAuth của bạn

Để hỗ trợ luồng ngầm định OAuth 2.0, dịch vụ của bạn cung cấp điểm cuối ủy quyền cho HTTPS. Điểm cuối này chịu trách nhiệm xác thực và nhận được sự đồng ý của người dùng để truy cập dữ liệu. Điểm cuối ủy quyền cung cấp giao diện người dùng đăng nhập cho người dùng của bạn chưa đăng nhập và ghi lại sự đồng ý đối với quyền truy cập được yêu cầu.

Khi một ứng dụng của Google cần gọi một trong các API được ủy quyền của dịch vụ của bạn, Google sử dụng điểm cuối này để xin phép người dùng của bạn thay mặt họ gọi các API này.

Một phiên quy trình ngầm định OAuth 2.0 điển hình do Google khởi xướng có quy trình sau:

  1. Google mở điểm cuối ủy quyền của bạn trong trình duyệt của người dùng. Người dùng đăng nhập, nếu chưa đăng nhập và cấp cho Google quyền truy cập dữ liệu của họ bằng API của bạn, nếu họ chưa cấp quyền.
  2. Dịch vụ của bạn tạo mã thông báo truy cập và trả lại cho Google. Để làm như vậy, hãy chuyển hướng trình duyệt của người dùng trở lại Google với mã thông báo truy cập được đính kèm với yêu cầu.
  3. Google gọi các API của dịch vụ của bạn và đính kèm mã thông báo truy cập với mỗi yêu cầu. Dịch vụ của bạn xác minh rằng mã thông báo truy cập cấp quyền cho Google để truy cập API và sau đó hoàn tất lệnh gọi API.

Xử lý các yêu cầu ủy quyền

Khi một ứng dụng của Google cần thực hiện liên kết tài khoản thông qua luồng ngầm định OAuth 2.0, Google sẽ gửi người dùng đến điểm cuối ủy quyền của bạn với một yêu cầu bao gồm các thông số sau:

Tham số điểm cuối ủy quyền
client_id ID khách hàng mà bạn đã chỉ định cho Google.
redirect_uri URL mà bạn gửi phản hồi cho yêu cầu này.
state Giá trị sổ sách kế toán được chuyển lại cho Google không thay đổi trong URI chuyển hướng.
response_type Loại giá trị sẽ trả về trong phản hồi. Đối với luồng ngầm định OAuth 2.0, loại phản hồi luôn là token .
user_locale Cài đặt ngôn ngữ Tài khoản Google ở ​​định dạng RFC5646 được sử dụng để bản địa hóa nội dung của bạn bằng ngôn ngữ ưa thích của người dùng.

Ví dụ: nếu điểm cuối ủy quyền của bạn có sẵn tại https://myservice.example.com/auth , một yêu cầu có thể giống như sau:

GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token&user_locale=LOCALE

Để điểm cuối ủy quyền của bạn xử lý các yêu cầu đăng nhập, hãy làm theo các bước sau:

  1. Xác minh các giá trị client_idredirect_uri để ngăn việc cấp quyền truy cập vào các ứng dụng khách không mong muốn hoặc bị định cấu hình sai:

    • Xác nhận rằng client_id khớp với ID khách hàng mà bạn đã chỉ định cho Google.
    • Xác nhận rằng URL được chỉ định bởi tham số redirect_uri có dạng sau:
      https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
      https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
      
  2. Kiểm tra xem người dùng đã đăng nhập vào dịch vụ của bạn chưa. Nếu người dùng chưa đăng nhập, hãy hoàn tất quy trình đăng nhập hoặc đăng ký dịch vụ của bạn.

  3. Tạo mã thông báo truy cập để Google sử dụng để truy cập API của bạn. Mã thông báo truy cập có thể là bất kỳ giá trị chuỗi nào, nhưng nó phải đại diện duy nhất cho người dùng và khách hàng mà mã thông báo dành cho và không được đoán.

  4. Gửi phản hồi HTTP chuyển hướng trình duyệt của người dùng đến URL được chỉ định bởi tham số redirect_uri . Bao gồm tất cả các tham số sau trong phân đoạn URL:

    • access_token : Mã thông báo truy cập bạn vừa tạo
    • token_type : Người bearer chuỗi
    • state : Giá trị trạng thái chưa được sửa đổi từ yêu cầu ban đầu

    Sau đây là ví dụ về URL kết quả:

    https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING

Trình xử lý chuyển hướng OAuth 2.0 của Google nhận mã thông báo truy cập và xác nhận rằng giá trị state không thay đổi. Sau khi Google lấy được mã thông báo truy cập cho dịch vụ của bạn, Google sẽ đính kèm mã này vào các lệnh gọi tiếp theo tới các API dịch vụ của bạn.

Xác thực việc triển khai của bạn

Bạn có thể xác thực việc triển khai của mình bằng cách sử dụng công cụ Sân chơi OAuth 2.0 .

Trong công cụ, hãy thực hiện các bước sau:

  1. Nhấp vào cấu hình để mở cửa sổ Cấu hình OAuth 2.0.
  2. Trong trường quy trình OAuth , chọn Phía máy khách .
  3. Trong trường Điểm cuối OAuth , hãy chọn Tùy chỉnh .
  4. Chỉ định điểm cuối OAuth 2.0 của bạn và ID khách hàng mà bạn đã chỉ định cho Google trong các trường tương ứng.
  5. Trong phần Bước 1 , không chọn bất kỳ phạm vi nào của Google. Thay vào đó, hãy để trống trường này hoặc nhập phạm vi hợp lệ cho máy chủ của bạn (hoặc một chuỗi tùy ý nếu bạn không sử dụng phạm vi OAuth). Khi bạn hoàn tất, hãy nhấp vào Ủy quyền API .
  6. Trong phần Bước 2Bước 3 , xem qua quy trình OAuth 2.0 và xác minh rằng mỗi bước hoạt động như dự định.

Bạn có thể xác thực việc triển khai của mình bằng cách sử dụng công cụ Demo liên kết tài khoản Google .

Trong công cụ, hãy thực hiện các bước sau:

  1. Nhấp vào nút Đăng nhập bằng Google .
  2. Chọn tài khoản bạn muốn liên kết.
  3. Nhập ID dịch vụ.
  4. Tùy ý nhập một hoặc nhiều phạm vi mà bạn sẽ yêu cầu quyền truy cập.
  5. Nhấp vào Bắt đầu Demo .
  6. Khi được nhắc, hãy xác nhận rằng bạn có thể đồng ý và từ chối yêu cầu liên kết.
  7. Xác nhận rằng bạn được chuyển hướng đến nền tảng của mình.