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 đề tích hợp chính.
Tóm tắt về tính năng Đăng nhập bằng Google
Sau đây là các bước chung để người dùng đăng nhập / đăng ký trên trang web của bạn.
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, bạn phải 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ự độ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 không bắt buộc đối với quy trình đăng nhập bằ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 vào nút này.
Người dùng duyệt xem các trang web của bạn có nút Một lần chạm, Tự động đăng nhập hoặc Đăng nhập bằng Google.
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 để:
- Chọn một phiên Google đang hoạt động để tiếp tục.
- Nhận sự đồng ý của người dùng cuối để chia sẻ thông tin hồ sơ với trang web của bạn, nếu họ chưa đồng ý.
Khi chỉ có một phiên Google đang hoạt động trong trình duyệt,
- Tính năng Một lần nhấn sẽ tự động chọn phiên duy nhất, do đó bỏ qua trang trình đơn chọn tài khoản.
- Nút Đăng nhập bằng Google vẫn nằm trên trang trình đơn chọn tài khoản, cho phép người dùng thêm phiên Google mới khi cần.
Nếu Tài khoản Google đã chọn chưa từng được sử dụng với trang web của bạn hoặc quyền đã bị thu hồi, thì trang yêu cầu đồng ý sẽ xuất hiện.
Sau khi phê duyệt, Google sẽ ghi lại quyết định này để bỏ qua trang đồng ý vào lần tiếp theo.
Thông tin xác thực Mã thông báo web JSON (còn gọi là mã thông báo 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 bằng cách 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 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ã thông báo đó trong mã JavaScript, mà là để bạn gửi mã thông báo đó đến máy chủ theo cách riêng. Một ví dụ điển hình là sử dụng XmlHttpRequest để tránh việc tải lại trang do việc gửi bài đăng gây ra.
Ở phía máy chủ, thông tin xác thực JWT do Google phát hành sẽ được xác thực và sử dụng để tạo tài khoản mới hoặc thiết lập phiên đã 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 vào 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 chính 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 một 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 dựa trên mật khẩu, Đă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 vào 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, nhưng 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 thay mặt người dùng đã xác thực truy cập vào các API và dịch vụ của Google. 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 nhận dạng để xác thực người dùng, nhưng quy trình uỷ quyền cung cấp cho trang web của bạn mã thông báo truy cập (riêng biệt) và quyền sử dụng các API và dịch vụ của Google. Hãy xem phần Uỷ quyền cho web để biết thêm thông tin.
Tách biệt trải nghiệm người dùng cho việc xác thực và uỷ quyền
Nếu trang web của bạn cần gọi cả API xác thực và uỷ quyền, bạn phải gọi riêng các API đó tại các thời điểm khác nhau. Xem phần Tách biệt thời điểm xác thực và uỷ quyền.
Nếu trước đây trang web của bạn đã yêu cầu mã xác thực và mã uỷ quyền cùng nhau, thì khi sử dụng thư viện JavaScript 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 biệt thời điểm xác thực với thời điểm 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 Đăng nhập bằng một lần chạm, 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ý trên 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 các 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 độ phức tạp, một phương pháp phổ biến là chia quá trình này thành hai bước riêng biệt.
- 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.
Di chuyển sang thư viện JavaScript của Dịch vụ nhận dạng của Google.
HTML API so với JavaScript API
Bạn có thể sử dụng API HTML hoặc API JavaScript để tích hợp tính năng Một lần nhấn, Tự động đăng nhập hoặc nút Đăng nhập bằng Google vào trang web của mình.
Với API HTML, bạn có nhiều tính năng tích hợp hơn. Ví dụ:
- Kết xuất tính năng Một lần chạm 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 trải nghiệm người dùng Một lần nhấn, Tự động đăng nhập hoặc nút bật lên/chuyển hướng hoàn tất. - Ngă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ố mã 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 tải lại trang do việc gửi bài đăng mặc định gây ra.
Với API JavaScript, bạn có thể linh hoạt hơn trong một số trường hợp.
- Hiển thị tính năng Một lần chạm và nút Đăng nhập bằng Google vào lúc khác. Ví dụ: sau khi người dùng chọn Đăng nhập trong trình đơn.
- Gọi API nhiều lần. Ví dụ: nút Đăng nhập bằng Google cần được hiển thị mỗi khi hộp thoại đăng nhập hiển thị.
- Tạo trang HTML một cách linh động, khiến bạn khó nhúng mã gọi API vào các trang đó.
- Bạn tải thư viện JavaScript 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 tải trang hoặc sự kiện tải thư viện JavaScript của Dịch vụ nhận dạng của Google, tuỳ theo sự kiện nào xảy ra sau. Bạn nên sử dụng API JavaScript nếu hành vi của API HTML không đáp ứng được 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ị tính năng Một lần nhấn và nút. Kiểm tra mã của bạn, cả HTML và JavaScript, để tìm những vị trí có thể trùng lặp. Xin lưu ý những điều sau:
- Bạn đang sử dụng API HTML nếu một hoặc nhiều phần tử trong
<div id='g_id_onload' ... ><id>
hoặc<div class='g_id_signin' ...></div>
tồn tại 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ặcrender()
được gọi trong mã JavaScript, bất kể các phương thức đó có được nội tuyến hay tải từ một tệp JavaScript riêng biệt.
Bạn có thể sử dụng các API JavaScript sau đây độc lập với việc khởi chạy hoặc hiển thị tính năng 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
Phần này thảo luận về những điểm cần cân nhắc khi tích hợp nút Đăng nhập bằng Google vào trang web của bạn.
Cửa sổ bật lên so với lệnh chuyển hướng
Quy cách OAuth 2.0 xem xét việc chuyển hướng HTTP, nhưng thiếu hướng dẫn về việc hiển thị hộp thoại bật lên. Trải nghiệm người dùng trên cửa sổ 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 bị 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 sẽ mang lại 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 dựa trên các kênh giao tiếp nhiều nguồn gốc phía máy khách để truyề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ị) đến cửa sổ chính (nơi trang của bên thứ ba đang hiển thị). Thông thường, mã JavaScript là bắt buộc ở 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 cửa sổ bật lên và chuyển hướng.
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 của nút Đăng nhập bằng Google và quy trình chuyển hướng OAuth.
- Quy trình chuyển hướng của 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, trong khi lệnh chuyển hướng OAuth thường sử dụng phương thứcGET
. - Các thông số do quy trình chuyển hướng của nút Đăng nhập bằng Google gửi khác với các thông số của quy trình chuyển hướng OAuth.
Đối với nhà phát triển sử dụng API HTML, bất kể trải nghiệm người dùng nào được sử dụng, 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ố. Điều này cho phép bạn chuyển đổi chế độ trải nghiệm người dùng mà không cần thay đổi mã nào khác.
Đối với trải nghiệm người dùng chuyển hướng, bạn phải thêm data-login_uri
vào URI chuyển hướng được uỷ quyền cho ứng dụng của mình trong Bảng điều khiển API của Google.
Tuỳ chỉnh nút
Không hỗ trợ sử dụng nút của riêng bạn. Không có API nào để khởi tạo luồng nút theo phương thức lập trình.
Để bật luồ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 khởi tạo 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 hiển thị 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 sử dụng trình tạo mã để thiết kế các nút một cách tương tác. Ngay cả khi sử dụng API JavaScript, trước tiên, bạn có thể tạo mã HTML, 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 trang web kiểm soát việc có nên sử 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ả các điều kiện đều được đáp ứng. Xem thêm thông tin chi tiết tại phần Tìm hiểu về nút 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ột nút mỗi lần. Bạn có thể chạy mã 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 để hiển thị nút
Vì lý do về quyền riêng tư, nút được cá nhân hoá sẽ xuất hiện trong một iframe từ miền accounts.google.com. Việc tải một iframe có thể mất nhiều thời gian trên một mạng chậm. Để giảm thiểu vấn đề độ trễ này, các nút được hiển thị theo 2 bước như sau:
- Phiên bản nút nội tuyến được hiển thị trong cây DOM của trang web. Đây chỉ là một nút văn bản, không thể sử dụng thông tin được cá nhân hoá. Mục đích là để cho phép người dùng thấy nút này sớm nhất có thể.
- Một yêu cầu iframe sẽ được gửi đến Google để tải iframe nút có thể chứa thông tin được cá nhân hoá. Sau khi tải iframe nút, 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 luồng Đăng nhập bằng Google.
- Tải thư viện JavaScript Dịch vụ nhận dạng của Google càng sớm càng tốt. Cân nhắc việ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 trong trình đơn.
Những điều cần cân nhắc khi sử dụng tính năng Một lần chạm
Tự động đăng nhập
Tính năng đăng nhập tự động cho phép người dùng đăng nhập vào trang web của bạn mà không cần nhấp vào lời nhắc Đăng nhập bằng một lần chạm nếu trước đó họ đã cấp quyền cho trang web của bạn.
Tính năng Tự động đăng nhập có thể huỷ mang lại những lợi ích sau.
- Điều này có thể cải thiện tỷ lệ đăng nhập bằng cách lưu một hành động của người dùng.
- Không giống như tính năng đăng nhập thầm do thư viện JavaScript Đăng nhập bằng Google cũ cung cấp, người dùng luôn thấy một số giao diện người dùng khi quá trình đăng nhập tự động diễn ra. Điều này giúp họ biết 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 đó, nhờ đó 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.
Bạn cần đưa ra quyết định có bật tính năng đăng nhập tự động hay không dựa trên giao diện người dùng và các yêu cầu kinh doanh của trang web. Đặc biệt là nếu hầu hết các lượt đăng xuất khỏi trang web của bạn là do hết thời gian chờ của phiên thay vì do lựa chọn rõ ràng của người dùng, thì tính năng đăng nhập tự động có thể là một cách hay để người dùng khôi phục trạng thái phiên.
Thời điểm hiển thị giao diện người dùng One Tap
Với HTML API, tính năng Một lần nhấn luôn hiển thị khi tải trang. Với API JavaScript, 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 nhấn. Xin lưu ý rằng 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 API được gọi, do những lý do sau.
- Không có phiên Google nào đang hoạt động trong trình duyệt.
- Tất cả phiên Google đang hoạt động đều đã chọn không tham gia.
- Quá trình thời gian chờ đang diễn ra.
Đừng cố gắng chỉ hiển thị giao diện người dùng Một lần nhấn trên sự kiện nhấp vào nút. Giao diện người dùng Một lần nhấn có thể không hiển thị do các lý do nêu trên và người dùng có thể gặp phải trải nghiệm người dùng bị gián đoạn vì không có gì hiển thị sau hành động của người dùng. Trên sự kiện nhấp vào nút:
Recommended (Nên dùng)
- Hiển thị hộp thoại đăng nhập bằng mật khẩu và nút Đăng nhập bằng Google đồng thời gọi API One Tap. Đ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
- Nếu chỉ cung cấp tính năng Đăng nhập bằng một lần chạm, người dùng có thể gặp phải trải nghiệm đăng nhập bị gián đoạn nếu tính năng Đăng nhập bằ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 nhấn 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 tốt với tính năng quản lý thông tin xác thực liên kết trong một bản phát hành sau này.
Tính năng Đăng ký bằng 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), giao diện người dùng tính năng Một lần nhấn 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. Thay vào đó, các trình duyệt này sẽ cung cấp trải nghiệm người dùng khác bắt đầu bằng một trang chào mừng.
Bạn có thể tắt trải nghiệm người dùng One Tap 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 nhấn trên trình duyệt ITP để biết thêm thông tin 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 hỗ trợ ITP, 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 ra
Theo mặc định, lời nhắc Một lần nhấn 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 mở lời nhắc Một lần nhấn 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 One Tap
Trên web dành cho máy tính, bạn có thể thay đổi vị trí của lời nhắc Một lần nhấn. Tuy nhiên, bạn không nên sử dụng tính năng này vì tính năng này không được quản lý thông tin xác thực liên kết hỗ trợ trong một bản phát hành trong tương lai.
Thay đổi ngữ cảnh đăng nhập
Tính năng Một lần nhấn phải là một phần của luồng 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 nhấn được sử dụng trong ngữ cảnh đăng nhập. Ngôn ngữ trong giao diện người dùng chứa các 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 đề của tính năng Một lần nhấn phù hợp nhất với luồng trải nghiệm người dùng của mình.
Ngữ cảnh | |
---|---|
signin |
"Đăng nhập bằng Google" |
signup |
"Đăng ký bằng Google" |
use |
"Sử dụng với Google" |
Trạng thái giao diện người dùng của tính năng Nghe bằ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 nhấn 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 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 Đăng ký bằng một lần chạm trên các miền con
Theo mặc định, thời gian chờ tính năng Một lần chạm và các trạng thái khác được theo dõi theo từng nguồn gốc. Nếu trang web của bạn hiển thị tính năng Một lần nhấn trên nhiều miền con, bạn cần cho biết điều đó trong mã API.
Một lần nhấn trong trang HTML tĩnh
Theo mặc định, thư viện GIS giả định rằng các trang web của bạn được tạo động. Máy chủ HTTP của bạn sẽ 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, bạn phải đưa mã HTML One Tap vào trang kết quả để kích hoạt tính năng One Tap 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, bạn không nên đưa mã HTML của tính năng Một lần nhấn 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 HTML của tính năng Một lần nhấn.
Mã API HTML của tính năng Một lần nhấn 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 tính năng Một lần nhấn vào các trang HTML tĩnh và chỉ định tên cookie phiên được sử dụng trong trang web của mình.
- Nếu cookie phiên không tồn tại, quy trình Một lần nhấn sẽ được kích hoạt.
- Nếu cookie phiên hoạt động, quy trình Một lần nhấn sẽ bị bỏ qua.
Trong trường hợp này, việc kích hoạt quy trình Một lần nhấn sẽ do trạng thái cookie phiên kiểm soát, thay vì sự tồn tại của mã API HTML Một lần nhấn trong trang web.
Tích hợp phía máy chủ
Sau khi quy trình Đăng nhập bằng một lần chạm, quy trình tự động đăng nhập hoặc quy trình trải nghiệm người dùng của nút Đăng nhập bằng Google hoàn tất, một mã thông báo nhận dạng sẽ được phát hành và chia sẻ với trang web của bạn. Để xác thực người dùng, bạn cần thực hiện một số thay đổi phía máy chủ để nhận và xác thực mã thông báo nhận dạng.
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 trong 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ể ảnh hưởng đến trải nghiệm người dùng.
- Liệu tính năng Một lần nhấn hay Đăng nhập bằng Google có được kích hoạt hay không.
- Liệu có sử dụng API HTML hay API JavaScript hay không.
- 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.
Đối với chế độ trải nghiệm người dùng chuyển hướng của nút Đăng nhập bằng Google:
- Cho dù sử dụng API HTML hay API JavaScript, bạn đều cần đặt URI đăng nhập. Bạn không thể sử dụng hàm gọi lại 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 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ượt 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,
POST
toàn trang sẽ được gửi đến URI đăng nhập mà bạn đã chỉ định.
Đối với chế độ trải nghiệm người dùng bật lên của tính năng Một lần nhấn hoặc nút Đăng nhập bằng Google, nếu 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 truyền trở lại hàm gọi lại JavaScript.
- Tóm tắt trải nghiệm người dùng: Lời nhắc Một lần nhấn hoặc cửa sổ bật lên sẽ xuất hiện 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 gọi lại JavaScript sẽ nhận được các phản hồi. Trải nghiệm người dùng tiếp theo được quyết định bằng cách hàm gọi lại gửi phản hồi đến máy chủ của bạn.
Nếu không (API HTML 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 trải nghiệm người dùng: lời nhắc Một lần nhấn hoặc cửa sổ bật lên sẽ xuất hiện 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ệ thống sẽ gửi phản hồi xác thực bằng cách gửi
POST
toàn trang đến URL đăng nhập mà bạn chỉ định.
Bạn nên sử dụng một cách nhất quán để gửi câu trả lời cho tính năng Một lần nhấn và câu trả lời cho 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ụ nhận dạng của Google kích hoạt, bạn có thể sử dụng mẫu cookie gửi hai lần tích hợp sẵn. Hãy tham khảo phần Xác minh mã thông báo mã nhận dạng của Google ở phía máy chủ để biết thêm chi tiết.
- Để gửi đến nguồn gốc của riêng bạn bằng XmlHttpRequest, bạn có thể sử dụng tiêu đề HTTP tuỳ chỉnh hoặc các biện pháp bảo mật khác do nhóm bảo mật của bạn phê duyệt.
Để xác minh mã thông báo nhận dạng trong các 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 dùng cho nhiều mục đích.
Câu hỏi thường gặp
Nút Đăng nhập bằng một lần chạm và Đăng nhập bằng Google có trong thành phần hiển thị web không?
Không. Do lo ngại về bảo mật, người dùng không nên thêm phiên Google vào khung hiển thị web. Do đó, GIS bị tắt trong khung hiển thị web vì không có phiên Google nào được cho là có trong đó.
Tôi có thể sử dụng nút Đăng nhập bằng Google của riêng mình không? Không. Với luồng phía máy chủ OAuth hoặc thư viện JavaScript Đăng nhập bằng Google phiên bản cũ, các bên phụ thuộc có thể sử dụng Nguyên tắc sử dụng thương hiệu cho tính năng Đăng nhập để 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 phải do thư viện JavaScript Dịch vụ nhận dạng của Google tạo. Có hai lý do dẫn đến 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.
- Khi thư viện tạo, bạn không cần thực hiện thay đổi nào khi Bảng nguyên tắc sử dụng thương hiệu cho tính năng Đăng nhập thay đổi.
Để thực thi quy tắc này, thư viện JavaScript chỉ hiển thị một API để hiển thị nút, chứ không phải API để bắt đầu quy trình đăng nhập.
Nếu trang web của tôi chỉ bật tính năng Một lần chạm nhưng không bật nút Đăng nhập bằng Google thì sao?
Bạn nên sử dụng cả tính năng Một lần nhấn và nút Đăng nhập bằng Google trên trang web của mình. Do thời gian chờ theo hàm mũ, tính năng Một lần chạm có thể không hiển thị mỗi khi bạn sử dụng. Khi thực sự muốn đăng nhập vào trang web của bạn bằng Tài khoản Google, người dùng 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 ở đó. Khi bạn đăng nhập thành công bằng nút Đăng nhập bằng Google, trạng thái thời gian chờ của tính năng Một lần nhấn sẽ được xoá để tính năng này có thể hiển thị trong lần đăng nhập tiếp theo. Các luồng nút khác của Google không thể xoá trạng thái thời gian chờ của tính năng Một lần nhấn 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 tính năng Một lần nhấn nhưng không bật nút Đăng nhập bằng Google, thì bạn có thể thấy hiệu suất giảm đối với luồng Một lần nhấn, vì trạng thái thời gian chờ luỹ thừa không được xoá kịp thời.
Khi nào mã API HTML 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ã API HTML trên sự kiện tải thư viện JavaScript hoặc sự kiện DomContentLoaded, tuỳ theo sự kiện nào xảy ra sau.
- Nếu sự kiện DomContentLoaded được kích hoạt khi thư viện JavaScript được tải, thì mã API HTML 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 trình nghe cho sự kiện DomContentLoaded. Khi được kích hoạt, trình nghe sẽ phân tích cú pháp và thực thi mã API HTML.
Ngoài ra, xin lưu ý rằng việc phân tích cú pháp và thực thi mã API HTML là một thao tác riêng biệt.
- Sau khi phân tích cú pháp và thực thi, mọi thay đổi tiếp theo đối với mã API HTML 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.