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