Những điều cần cân nhắc khi tích hợp

Hướng dẫn từng bước này giúp bạn đưa ra quyết định về tất cả các vấn đề lớn về tích hợp.

Tính năng Đăng nhập bằng Google trong phần tóm tắt

Dưới đây là các bước chung để người dùng đăng nhập / đăng ký trên trang web của bạn.

  1. Người dùng đăng nhập vào một trang web của Google.

    Để tính năng Đăng nhập bằng Google hoạt động, cần có một phiên Google đang hoạt động trong trình duyệt. Tính năng Một lần chạm và tính năng Tự động đăng nhập chỉ được kích hoạt khi người dùng đã đăng nhập vào Google trước khi tải trang web của bạn. Bước này là không bắt buộc đối với quy trình sử dụng nút Đăng nhập bằng Google, vì người dùng sẽ được nhắc đăng nhập vào Google khi nhấn nút này.

  2. Người dùng duyệt xem những trang web của bạn mà trong đó nút Một lần chạm, tính năng Đăng nhập tự động hoặc Đăng nhập bằng Google được nhúng.

  3. Người dùng tương tác với tính năng Một lần chạm, nút Đăng nhập bằng Google và các luồng trải nghiệm người dùng tiếp theo để:

    • Hãy chọn một phiên hoạt động trên Google để tiếp tục.
    • Nhận được sự đồng ý của người dùng cuối về việc chia sẻ thông tin hồ sơ với trang web của bạn nếu chưa đồng ý.

    Khi chỉ có một phiên Google hoạt động trong trình duyệt,

    • Tính năng Một lần chạm tự động chọn phiên duy nhất, do đó sẽ bỏ qua trang trình chọn tài khoản.
    • Nút Đăng nhập bằng Google nằm trên trang trình chọn tài khoản, cho phép người dùng thêm một phiên Google mới khi cần.

    Nếu Tài khoản Google được chọn chưa được sử dụng với trang web của bạn hoặc quyền đã bị thu hồi, thì trang lấy sự đồng ý sẽ hiển thị.

    Nút Đăng nhập bằng Google đồng ý

    Sau khi được phê duyệt, Google sẽ ghi lại quyết định để lần tiếp theo bỏ qua trang đồng ý.

  4. Thông tin xác thực của Mã thông báo web JSON (còn gọi là mã thông báo mã nhận dạng) chứa tên, email và ảnh hồ sơ của người dùng được chia sẻ bằng trình xử lý gọi lại JavaScript hoặc lượt gửi bài đăng đến dịch vụ phụ trợ của bạn.

    Mục đích của việc trả về mã thông báo mã nhận dạng cho trình xử lý gọi lại JavaScript ở phía máy khách không phải để bạn giải mã mã đó bằng mã JavaScript, mà để bạn gửi mã đó đến máy chủ theo cách riêng của mình. Một ví dụ điển hình là sử dụng XmlHttpRequest để tránh tình trạng tải lại trang do việc gửi bài đăng.

  5. Ở phía máy chủ, thông tin xác thực JWT do Google cấp sẽ được xác thực và sử dụng để tạo một tài khoản mới hoặc thiết lập phiên được xác thực trên trang web của bạn.

    Bạn sẽ quản lý trạng thái đăng nhập của người dùng trên trang web của riêng mình.

    Trạng thái đăng nhập Tài khoản Google của người dùng và ứng dụng của bạn độc lập với nhau, ngoại trừ trong thời điểm đăng nhập khi bạn biết rằng người dùng đã xác thực thành công và đăng nhập vào Tài khoản Google của họ. Người dùng có thể vẫn đăng nhập, đăng xuất hoặc chuyển sang Tài khoản Google khác trong khi vẫn duy trì phiên đăng nhập đang hoạt động trên trang web của bạn.

Tóm lại, giống như tính năng đăng nhập bằng mật khẩu, tính năng Đăng nhập bằng Google cung cấp một cách khác để xác thực người dùng trên web. Tính năng Đăng nhập bằng Google không cung cấp bất kỳ tính năng nào để quản lý phiên trên trang web của bạn sau khi xác thực.

Truy cập các API và dịch vụ của Google

Mặc dù đã tích hợp API xác thực, như mô tả ở trên, bạn cũng có thể cần tích hợp API uỷ quyền, nếu trang web của bạn cần truy cập vào các API và dịch vụ của Google thay mặt cho người dùng đã xác thực. Mặc dù quy trình xác thực cung cấp cho trang web của bạn mã thông báo mã nhận dạng để xác thực người dùng, nhưng việc uỷ quyền sẽ cung cấp cho trang web của bạn mã truy cập (riêng biệt) và quyền sử dụng API và dịch vụ của Google. Vui lòng xem bài viết Cấp phép cho web để biết thêm thông tin.

Phân tách trải nghiệm người dùng để xác thực và uỷ quyền

Nếu trang web cần gọi cả API xác thực và API uỷ quyền, thì bạn phải gọi riêng các API này tại các thời điểm khác nhau. Xem phần Tách biệt khoảnh khắc xác thực và uỷ quyền.

Nếu trước đây, trang web của bạn đã yêu cầu mã thông báo xác thực và uỷ quyền cùng nhau, thì khi sử dụng thư viện JavaScript của Dịch vụ nhận dạng của Google, bạn cần điều chỉnh trải nghiệm người dùng để tách riêng khoảnh khắc xác thực với khoảnh khắc uỷ quyền.

  • Tại thời điểm xác thực, trang web của bạn có thể tích hợp với tính năng Một lần chạm, tính năng Tự động đăng nhập hoặc nút Đăng nhập bằng Google để cho phép người dùng đăng nhập hoặc đăng ký trang web của bạn.
  • Tại thời điểm uỷ quyền, trang web của bạn có thể gọi API uỷ quyền để lấy quyền và mã thông báo để truy cập vào các API hoặc dịch vụ của Google.

Để quá trình chuyển đổi trải nghiệm người dùng diễn ra suôn sẻ và giảm bớt sự phức tạp, phương pháp phổ biến là chia quy trình thành hai bước riêng biệt.

  1. Tái cấu trúc trải nghiệm người dùng để tách biệt các khoảnh khắc xác thực và uỷ quyền.
  2. Di chuyển sang thư viện JavaScript của Dịch vụ nhận dạng của Google.

API HTML so với API JavaScript

Bạn có thể sử dụng API HTML hoặc API JavaScript để tích hợp nút Một lần nhấn, tính năng Tự động đăng nhập hoặc Đăng nhập bằng Google vào các trang web của mình.

Với HTML API, bạn có nhiều tính năng tích hợp hơn. Ví dụ:

  • Hiển thị tính năng Một lần nhấn hoặc nút Đăng nhập bằng Google khi tải trang.
  • Gửi thông tin xác thực được trả về đến điểm cuối phía máy chủ (do thuộc tính data-login_uri chỉ định) sau khi hoàn tất trải nghiệm Một lần chạm, Đăng nhập tự động hoặc trải nghiệm người dùng qua nút bật lên/chuyển hướng.
  • Ngăn chặn các cuộc tấn công CSRF bằng double-submit-cookie.
  • Sử dụng trình tạo mã để tạo mã HTML, sau đó chỉ cần sao chép mã đó vào các trang HTML.

Với HTML API, bạn cũng có thể viết một số JavaScript để tuỳ chỉnh hành vi.

  • Bạn có thể viết trình xử lý gọi lại của riêng mình, sau đó đặt tên hàm thành thuộc tính data-callback. Một ví dụ điển hình là sử dụng XmlHttpRequest để gửi thông tin xác thực được trả về đến máy chủ của bạn, nhằm tránh việc trang tải lại do việc gửi bài đăng mặc định.

Với JavaScript API, bạn có thể linh hoạt hơn trong một số trường hợp như bên dưới.

  • Hiển thị tính năng Một lần chạm và nút Đăng nhập bằng Google sau đó. Ví dụ: sau khi người dùng chọn Đăng nhập từ trình đơn.
  • Gọi API nhiều lần. Ví dụ: nút Đăng nhập bằng Google cần hiển thị mỗi khi hộp thoại đăng nhập hiển thị.
  • Tạo các trang HTML một cách linh động, khiến cho việc nhúng mã gọi API vào đó trở nên khó khăn.
  • Bạn tải thư viện JavaScript của Dịch vụ nhận dạng của Google vào lúc khác.

Bạn chỉ có thể gọi mã API HTML một lần trên sự kiện khi tải trang hoặc sự kiện tải JavaScript của thư viện Dịch vụ nhận dạng của Google JavaScript, tuỳ theo điều kiện nào đến sau. Bạn nên sử dụng API JavaScript nếu hành vi của API HTML không đáp ứng kỳ vọng của bạn.

Không sử dụng API HTML với API JavaScript trong cùng một trang web để khởi chạy trang hoặc để hiển thị một lần chạm và nút. Kiểm tra mã của bạn, cả HTML và JavaScript, để tìm những vị trí chúng có thể trùng lặp. Xin lưu ý những điều sau:

  • Bạn đang sử dụng HTML API nếu ít nhất một phần tử trong <div id='g_id_onload' ... ><id> hoặc <div class='g_id_signin' ...></div> có trong mã HTML.
  • Bạn đang sử dụng API JavaScript nếu một hoặc nhiều phương thức trong initialize(), prompt() hoặc render() được gọi trong mã JavaScript, bất kể các phương thức đó cùng dòng hay được tải từ một tệp JavaScript riêng.

Các API JavaScript sau đây có thể được dùng độc lập với tính năng khởi chạy hoặc hiển thị một lần nhấn và nút; các API này không có API HTML tương ứng:

Những điều cần cân nhắc về nút Đăng nhập bằng Google

Cửa sổ bật lên và đường liên kết chuyển hướng

Thông số kỹ thuật của OAuth 2.0 có xem xét lệnh chuyển hướng HTTP, nhưng thiếu hướng dẫn về cách hiển thị hộp thoại bật lên. Trải nghiệm người dùng bật lên, đặc biệt là trên web dành cho máy tính, có thể mang lại trải nghiệm tốt hơn cho người dùng cuối. Điều này là do người dùng không được chuyển hướng khỏi các trang của bên thứ ba và cửa sổ bật lên giống như hộp thoại mang đến trải nghiệm theo ngữ cảnh để cấp quyền.

Với trải nghiệm người dùng bật lên, nhà cung cấp danh tính cần xây dựng trên các kênh giao tiếp nhiều nguồn gốc phía máy khách để chuyển phản hồi OAuth từ cửa sổ bật lên (nơi trang đồng ý của nhà cung cấp danh tính đang hiển thị) sang cửa sổ chính nơi trang của bên thứ ba đang hiển thị. Thông thường, mã JavaScript được yêu cầu ở cả hai bên để gửi và nhận phản hồi OAuth trên các cửa sổ.

Nút Đăng nhập bằng Google hỗ trợ cả trải nghiệm người dùng chuyển hướng và cửa sổ bật lên. Theo mặc định, trải nghiệm người dùng bật lên sẽ được sử dụng. Bạn có thể thay đổi trải nghiệm người dùng bằng cách đặt thuộc tính data-ux_mode.

Có một số điểm khác biệt giữa quy trình chuyển hướng bằng nút Đăng nhập bằng Google và quy trình chuyển hướng OAuth.

  • Quy trình chuyển hướng bằng nút Đăng nhập bằng Google luôn sử dụng phương thức POST để gửi thông tin xác thực đến máy chủ web của bạn, trong khi tính năng chuyển hướng OAuth thường sử dụng phương thức GET.
  • Thông số do quy trình chuyển hướng qua nút Đăng nhập bằng Google gửi khác với thông số của quy trình chuyển hướng OAuth.

Đối với các nhà phát triển sử dụng API HTML, bất kể sử dụng trải nghiệm người dùng nào, thông tin xác thực luôn được gửi đến data-login_uri bằng phương thức POST và cùng một tham số. Nhờ đó, bạn có thể chuyển đổi chế độ trải nghiệm người dùng mà không cần thay đổi mã. Đối với trải nghiệm người dùng chuyển hướng, data-login_uri phải được thêm vào URI chuyển hướng được uỷ quyền cho ứng dụng khách của bạn trong Bảng điều khiển API của Google.

Tuỳ chỉnh nút

Việc sử dụng nút của riêng bạn không được hỗ trợ. Không có API nào để bắt đầu quy trình nút theo phương thức lập trình.

Để bật quy trình sử dụng nút Đăng nhập bằng Google, bạn chỉ cần hiển thị một hoặc nhiều nút Đăng nhập bằng Google trên trang web của mình. Quy trình nút được bắt đầu và xử lý một cách minh bạch khi người dùng nhấp vào các nút này.

API kết xuất nút cho phép bạn tuỳ chỉnh giao diện của nút Đăng nhập bằng Google. Bạn nên dùng trình tạo mã để thiết kế các nút có tính tương tác. Ngay cả khi sử dụng API JavaScript, bạn vẫn có thể tạo mã HTML trước, sau đó sao chép mã đó vào các trường tương ứng trong API JavaScript.

Không có API nào để cho phép các trang web kiểm soát việc có nên dùng thông tin được cá nhân hoá để hiển thị các nút hay không. Các nút được cá nhân hoá sẽ hiển thị nếu tất cả điều kiện được đáp ứng. Bạn có thể xem thêm thông tin chi tiết tại nút Tìm hiểu thông tin được cá nhân hoá.

Bạn có thể đặt nhiều nút trong cùng một trang web. Trình tạo mã chỉ có thể tạo mỗi lần một nút. Bạn có thể chạy tệp này nhiều lần và sao chép mã <div class='g_id_signin' ...></div> đã tạo vào trang web.

Các phương pháp hay nhất về kết xuất nút

Vì lý do về quyền riêng tư, nút được cá nhân hoá sẽ hiển thị trong một iframe thuộc miền accounts.google.com. Việc tải iframe có thể tốn thời gian trên một mạng chậm. Để giảm thiểu vấn đề về độ trễ này, các nút được hiển thị theo 2 bước như sau:

  1. Phiên bản nút cùng dòng được hiển thị trong cây DOM của trang web. Đó chỉ là một nút văn bản, không thể sử dụng thông tin cá nhân hoá nào. Mục đích là cho phép người dùng thấy nút sớm nhất có thể.
  2. Yêu cầu iframe được gửi đến Google để tải iframe nút. iframe này có thể có thông tin được cá nhân hoá. Sau khi iframe nút được tải, nút phiên bản cùng dòng sẽ bị xoá.

Dưới đây là một số phương pháp hay nhất để giảm thiểu độ trễ khi hiển thị nút quy trình của nút Đăng nhập bằng Google.

  • Tải thư viện JavaScript của Dịch vụ nhận dạng của Google càng sớm càng tốt. Hãy cân nhắc tải thư viện JavaScript trước một số thư viện lớn khác, đặc biệt là trên web dành cho thiết bị di động.
  • Nếu nút Đăng nhập bằng Google chỉ hiển thị sau khi người dùng chọn Đăng nhập trong trình đơn. Trước tiên, bạn có thể hiển thị nút Đăng nhập bằng Google trong một phần tử ẩn, sau đó hiển thị nút này sau khi người dùng chọn Đăng nhập từ trình đơn.

Những điều cần lưu ý khi dùng tính năng Một lần chạm

Tự động đăng nhập

Tính năng tự động đăng nhập có thể huỷ mang lại các lợi ích sau.

  • Tính năng này có thể cải thiện tỷ lệ đăng nhập bằng cách lưu một thao tác của người dùng.
  • Không giống như tính năng đăng nhập ngầm do trước đó cung cấp (không dùng nữa) trong thư viện JavaScript Đăng nhập bằng Google, người dùng luôn thấy một số giao diện người dùng khi đăng nhập tự động. Việc này sẽ cung cấp cho họ ngữ cảnh về lý do và cách họ đăng nhập vào trang web của bạn. Người dùng cũng có thể huỷ nếu họ muốn.
  • Tính năng này tự động chọn tài khoản mà người dùng đã sử dụng trước đó. Điều này có thể ngăn người dùng tạo tài khoản trùng lặp trên trang web của bạn.

Việc có bật tính năng tự động đăng nhập hay không là quyết định mà bạn cần đưa ra dựa trên trải nghiệm người dùng và yêu cầu kinh doanh trên trang web của bạn. Đặc biệt, nếu hầu hết các lượt đăng xuất trên trang web của bạn là do hết thời gian chờ của phiên thay vì do sự lựa chọn rõ ràng của người dùng, thì tính năng tự động đăng nhập có thể là một cách hay để người dùng khôi phục trạng thái của phiên.

Thời điểm hiển thị Giao diện người dùng bằng một lần chạm

Với API HTML, tính năng Một lần chạm luôn hiển thị khi tải trang. Với JavaScript

API, bạn có thể kiểm soát thời điểm hiển thị Giao diện người dùng Một lần chạm. Lưu ý: Giao diện người dùng Một lần nhấn không phải lúc nào cũng hiển thị sau khi gọi API, vì một số lý do như mô tả dưới đây.

  • Không có phiên Google hoạt động nào trong trình duyệt.
  • Tất cả phiên Google đang hoạt động đều không sử dụng.
  • Đang trong quá trình làm mát.

Đừng cố gắng chỉ hiển thị giao diện người dùng Một lần chạm trên sự kiện nhấp nút. Giao diện người dùng Một lần chạm có thể không hiển thị vì các lý do trên và người dùng có thể có trải nghiệm người dùng bị hỏng vì không có gì hiển thị sau thao tác của người dùng. Trên sự kiện nhấp nút:

Recommended (Nên dùng)

  • Hiển thị hộp thoại đăng nhập với tính năng đăng nhập bằng mật khẩu và nút Đăng nhập bằng Google, đồng thời gọi API Một lần chạm. Điều này đảm bảo rằng người dùng luôn được cung cấp một số phương thức đăng nhập cho trang web của bạn.

Không nên dùng

  • Nếu chỉ cung cấp một lần chạm, người dùng có thể gặp lỗi đăng nhập nếu tính năng Một lần chạm không hiển thị.
  • Sử dụng lệnh gọi lại trạng thái giao diện người dùng để hiển thị một giao diện người dùng khác nếu tính năng Một lần chạm không hiển thị. Bạn không nên làm như vậy vì lệnh gọi lại trạng thái giao diện người dùng có thể không hoạt động hiệu quả với tính năng quản lý thông tin xác thực liên kết trong bản phát hành sau này.

Một lần chạm trên trình duyệt ITP

Do tính năng Ngăn chặn theo dõi thông minh (ITP), trải nghiệm người dùng One Tap thông thường không hoạt động trên các trình duyệt ITP, chẳng hạn như Chrome trên iOS, Safari và Firefox. Một trải nghiệm người dùng khác bắt đầu bằng trang chào mừng sẽ được cung cấp trên những trình duyệt này.

Bạn có thể tắt trải nghiệm một lần chạm trên trình duyệt ITP nếu muốn. Hãy tham khảo bài viết Hỗ trợ tính năng một lần chạm trên trình duyệt ITP để biết thêm chi tiết.

Không có cách nào để bật trải nghiệm người dùng này trên các trình duyệt không phải CNTT, chẳng hạn như Chrome trên Android/macOS/Linux và Edge.

Huỷ lời nhắc nếu người dùng nhấp vào phần khác

Theo mặc định, lời nhắc Một lần chạm sẽ tự động đóng nếu người dùng nhấp vào bên ngoài lời nhắc. Bạn có thể thay đổi hành vi này nếu muốn.

Bạn nên luôn mở lời nhắc Một lần chạm trên web dành cho máy tính vì kích thước màn hình đủ lớn.

Thay đổi vị trí của trải nghiệm người dùng bằng một lần chạm

Trên web dành cho máy tính, bạn có thể thay đổi vị trí của lời nhắc bằng một lần chạm. Tuy nhiên, bạn không nên dùng tính năng này vì tính năng quản lý thông tin xác thực liên kết sẽ không được hỗ trợ trong bản phát hành sau này.

Thay đổi ngữ cảnh đăng nhập

Tính năng Một lần chạm phải có trong quy trình trải nghiệm người dùng lớn hơn trên trang web của bạn. Theo mặc định, giao diện người dùng Một lần chạm được sử dụng trong ngữ cảnh đăng nhập. Ngôn ngữ trong giao diện người dùng chứa từ ngữ cụ thể, chẳng hạn như "đăng nhập". Bạn có thể thay đổi thuộc tính ngữ cảnh để tạo một bộ từ ngữ khác. Bạn có thể chọn một trong các tiêu đề Một lần chạm phù hợp nhất với quy trình trải nghiệm người dùng của mình.

Bối cảnh
signin "Đăng nhập bằng Google"
signup "Đăng ký bằng Google"
use "Sử dụng bằng Google"

Trạng thái của tính năng Nghe trên giao diện người dùng Một lần chạm

Để tích hợp liền mạch vào quy trình trải nghiệm người dùng lớn hơn, tính năng Một lần chạm có thể thông báo cho bạn khi trạng thái giao diện người dùng thay đổi. Tuy nhiên, tính năng này sẽ không được hỗ trợ trong các bản phát hành quản lý thông tin xác thực liên kết trong tương lai.

Tính năng Một lần chạm trên các miền con

Theo mặc định, thời gian chờ bằng một lần chạm và các trạng thái khác sẽ được theo dõi theo nguồn gốc. Nếu trang web của bạn hiển thị tính năng Một lần chạm trên nhiều miền con, thì bạn cần chỉ rõ điều đó trong mã API.

Tính năng Một lần chạm trong trang HTML tĩnh

Theo mặc định, thư viện GIS giả định các trang web của bạn được tạo theo phương thức động. Máy chủ HTTP của bạn kiểm tra trạng thái đăng nhập của người dùng khi tạo mã HTML.

  • Nếu không có người dùng nào đăng nhập, thì trang kết quả phải bao gồm mã HTML của tính năng Một lần chạm để kích hoạt tính năng Một lần chạm nhằm cho phép người dùng đăng nhập vào trang web của bạn.
  • Nếu người dùng đã đăng nhập, thì bạn không nên đưa mã HTML của tính năng Một lần chạm vào trang kết quả.

Trong trường hợp này, máy chủ web của bạn có trách nhiệm thêm hoặc xoá mã API Một lần chạm HTML.

Mã API One Tap HTML có thể hoạt động theo cách khác, được thiết kế cho các trang web lưu trữ nhiều nội dung HTML tĩnh. Bạn luôn có thể đưa mã API HTML của một lần chạm vào các trang HTML tĩnh và chỉ định tên cookie của phiên dùng trong trang web của bạn.

  • Nếu cookie của phiên hoạt động không tồn tại, thì quy trình Một lần chạm sẽ được kích hoạt.
  • Nếu có cookie theo phiên, thì quy trình Một lần chạm sẽ bị bỏ qua.

Trong trường hợp này, việc liệu việc kích hoạt quy trình Một lần chạm có được kiểm soát bởi trạng thái cookie phiên của bạn hay không, thay vì sự tồn tại của mã API Một lần chạm HTML trong trang web của bạn.

Tích hợp phía máy chủ

Sau khi hoàn tất quy trình Trải nghiệm người dùng qua nút Một lần chạm, tính năng đăng nhập tự động hoặc quy trình trải nghiệm người dùng qua nút Đăng nhập bằng Google, một mã thông báo sẽ được cấp và chia sẻ với trang web của bạn. Để xác thực người dùng, cần có một số thay đổi phía máy chủ để nhận và xác thực mã thông báo.

Những điều cần cân nhắc về trải nghiệm người dùng

Thông thường, bạn cần thêm một điểm cuối HTTP từ nguồn gốc của riêng mình để xử lý các phản hồi ở phía máy chủ. Các yếu tố sau đây có thể có tác động đến trải nghiệm người dùng tạo ra.

  • Xác định việc tính năng Một lần chạm hay Đăng nhập bằng Google có được kích hoạt.
  • Liệu sử dụng HTML API hoặc JavaScript API.
  • Liệu URI đăng nhập hay hàm callback JavaScript được dùng để xử lý phản hồi.

Trải nghiệm người dùng thực tế mà bạn nhận được được mô tả như sau.

  1. Đối với chế độ Trải nghiệm người dùng chuyển hướng bằng nút Đăng nhập bằng Google:

    • Dù sử dụng API HTML hay API JavaScript, bạn vẫn cần đặt URI đăng nhập. Bạn không thể sử dụng hàm callback JavaScript để xử lý phản hồi, vì người dùng đã được chuyển hướng khỏi trang web của bạn.
    • Tóm tắt về trải nghiệm người dùng: sau khi nhấp vào nút Đăng nhập bằng Google, người dùng sẽ thấy một lệnh chuyển hướng toàn trang đến giao diện người dùng của Google để chọn và phê duyệt phiên. Sau khi hoàn tất, một POST toàn trang sẽ được gửi đến URI đăng nhập mà bạn đã chỉ định.
  2. Đối với chế độ trải nghiệm người dùng bật lên của nút Đăng nhập bằng Google hoặc nút Đăng nhập bằng Google, nếu bạn sử dụng API JavaScript hoặc API HTML và cung cấp hàm gọi lại JavaScript:

    • Phản hồi xác thực được trả về hàm callback JavaScript.
    • Tóm tắt về trải nghiệm người dùng: Lời nhắc một lần chạm hoặc cửa sổ bật lên hiển thị phía trên trang web của bạn. Sau khi người dùng hoàn tất trải nghiệm người dùng trong lời nhắc hoặc cửa sổ bật lên để chọn và phê duyệt phiên, hàm callback JavaScript sẽ nhận được phản hồi. Trải nghiệm người dùng tiếp theo sẽ được quyết định dựa trên cách hàm callback gửi phản hồi đến máy chủ của bạn.
  3. Nếu không (HTML API với trường hợp URI đăng nhập):

    • Phản hồi xác thực được gửi đến URI đăng nhập.
    • Tóm tắt về trải nghiệm người dùng: Lời nhắc bằng một lần chạm hoặc cửa sổ bật lên hiển thị phía trên trang web của bạn. Sau khi người dùng hoàn tất trải nghiệm người dùng trong lời nhắc hoặc cửa sổ bật lên để chọn và phê duyệt phiên, phản hồi xác thực sẽ được gửi bằng cách gửi POST toàn trang đến URL đăng nhập bạn đã chỉ định.

Bạn nên sử dụng một cách nhất quán để gửi phản hồi bằng Một lần chạm và phản hồi bằng nút Đăng nhập bằng Google.

Lưu ý về bảo mật

Để ngăn chặn các cuộc tấn công giả mạo yêu cầu trên nhiều trang web,

  • Đối với việc gửi bài đăng do thư viện JavaScript của ứng dụng Dịch vụ danh tính của Google kích hoạt, bạn có thể sử dụng mẫu cookie double-submit-cookie tích hợp sẵn. Hãy tham khảo bài viết Xác minh mã thông báo giá trị nhận dạng của Google ở phía máy chủ để biết thêm thông tin chi tiết.
  • Để gửi tới nguồn gốc của riêng bạn bằng XmlHttpRequest, bạn có thể dùng tiêu đề HTTP tuỳ chỉnh hoặc các biện pháp bảo mật khác được nhóm bảo mật của bạn phê duyệt.

Để xác minh mã thông báo mã nhận dạng trong phản hồi xác thực, bạn nên sử dụng thư viện ứng dụng API của Google cho nền tảng của mình hoặc thư viện JWT đa năng.

Câu hỏi thường gặp

  • Nút Một lần chạm và Đăng nhập bằng Google có hoạt động trong chế độ xem web không?

    Không. Do lo ngại về tính bảo mật, người dùng không nên thêm các phiên Google vào chế độ xem web. Do đó, GIS bị tắt trong chế độ xem web vì không có phiên nào của Google được giả định là ở đó.

  • Tôi có thể sử dụng nút Đăng nhập bằng Google của chính mình không? Không. Với quy trình phía máy chủ OAuth hoặc thư viện JavaScript của tính năng Đăng nhập bằng Google phiên bản cũ, các bên đáng tin cậy có thể sử dụng Nguyên tắc đăng nhập thương hiệu để tạo phiên bản nút Đăng nhập bằng Google của riêng họ.

    Tuy nhiên, tính năng Đăng nhập bằng Google đã xoá tính năng này. Tất cả các nút Đăng nhập bằng Google đều phải được tạo bằng thư viện JavaScript của Dịch vụ nhận dạng của Google. Có hai lý do cho sự thay đổi này.

    • Một số bên phụ thuộc không tuân thủ nguyên tắc, dẫn đến việc các nút Đăng nhập bằng Google không nhất quán trên các trang web.
    • Bằng cách tạo bởi thư viện, bạn không cần thực hiện bất kỳ thay đổi nào khi Nguyên tắc sử dụng thương hiệu đăng nhập thay đổi.

    Để thực thi quy tắc này, thư viện JavaScript chỉ hiển thị API để hiển thị nút, mà không hiển thị API để bắt đầu quy trình đăng nhập.

  • Nếu trang web của tôi chỉ bật nút Một lần chạm mà không bật tính năng Đăng nhập bằng Google thì sao?

    Bạn nên sử dụng cả nút Một lần chạm và nút Đăng nhập bằng Google trên trang web của mình. Do thời gian chờ theo cấp số nhân, tính năng Một lần chạm có thể không hiển thị mỗi lần. Khi người dùng thực sự muốn đăng nhập vào trang web của bạn bằng Tài khoản Google, họ có thể chuyển đến hộp thoại đăng nhập chính và đăng nhập bằng nút Đăng nhập bằng Google tại đó. Đăng nhập thành công bằng nút Đăng nhập bằng Google sẽ xoá trạng thái thời gian chờ bằng Một lần chạm để tính năng Một lần chạm có thể hiển thị cho lần đăng nhập tiếp theo. Các luồng nút khác từ Google không thể xoá trạng thái thời gian chờ của tính năng Một lần chạm vì các luồng này nằm trong các tệp nhị phân JavaScript khác nhau.

    Nếu trang web của bạn chỉ bật nút Một lần chạm mà không bật nút Đăng nhập bằng Google, bạn có thể thấy hiệu suất của quy trình Một lần chạm giảm vì trạng thái thời gian chờ theo cấp số nhân không bị xoá kịp thời.

  • Khi nào mã HTML API của tôi được phân tích cú pháp? Tôi có thể thay đổi mã API HTML sau này không?

    Thư viện JavaScript của Dịch vụ nhận dạng của Google phân tích cú pháp và thực thi mã HTML API trên sự kiện tải thư viện JavaScript hoặc sự kiện DomContentLoader, tuỳ theo sự kiện nào đến sau.

    • Nếu sự kiện DomContentLoader được kích hoạt khi thư viện JavaScript được tải, thì mã HTML API của bạn sẽ được phân tích cú pháp và thực thi ngay lập tức.
    • Nếu không, thư viện JavaScript sẽ thêm một trình nghe cho sự kiện DomContentLoader. Khi được kích hoạt, trình nghe sẽ phân tích cú pháp và thực thi mã HTML API của bạn.

    Ngoài ra, xin lưu ý rằng việc phân tích cú pháp và thực thi mã HTML API là một lần.

    • Sau khi phân tích cú pháp và thực thi, mọi thay đổi tiếp theo đối với mã HTML API sẽ bị bỏ qua.
    • Không có API nào để nhà phát triển kích hoạt quá trình phân tích cú pháp hoặc thực thi.