Chuyển sang FedCM

Hướng dẫn này giúp bạn hiểu những thay đổi đối với ứng dụng web của bạn do API Quản lý thông tin xác thực liên kết (FedCM) giới thiệu.

Khi FedCM được bật, trình duyệt sẽ hiển thị lời nhắc của người dùng và không sử dụng cookie của bên thứ ba nào.

Tổng quan

Hộp cát về quyền riêng tư cho web và việc Chrome loại bỏ cookie của bên thứ ba khỏi web dẫn đến những thay đổi quan trọng đối với Dịch vụ Google Identity và hoạt động đăng nhập của người dùng.

FedCM cho phép quy trình đăng nhập riêng tư hơn mà không cần sử dụng cookie của bên thứ ba. Trình duyệt kiểm soát các chế độ cài đặt của người dùng, hiển thị lời nhắc của người dùng và chỉ liên hệ với Nhà cung cấp danh tính như Google sau khi người dùng đồng ý một cách rõ ràng.

Đối với hầu hết các trang web, quá trình di chuyển diễn ra liền mạch thông qua các bản cập nhật có khả năng tương thích ngược cho thư viện JavaScript của Dịch vụ nhận dạng của Google.

Thông tin cập nhật về tính năng Tự động đăng nhập

Phiên bản thử nghiệm beta của tính năng Quản lý thông tin xác thực liên kết (FedCM) cho Dịch vụ danh tính của Google đã ra mắt vào tháng 8 năm 2023. Nhiều nhà phát triển đã thử nghiệm API và đưa ra ý kiến phản hồi có giá trị.

Một phản hồi mà Google nhận được từ các nhà phát triển là về yêu cầu về cử chỉ của người dùng trong quy trình đăng nhập tự động FedCM. Để cải thiện quyền riêng tư, Chrome yêu cầu người dùng xác nhận lại rằng họ muốn đăng nhập vào trang web bằng Tài khoản Google trong từng phiên bản Chrome, ngay cả khi người dùng đã phê duyệt trang web trước khi FedCM ra mắt. Tính năng xác nhận lại một lần này diễn ra thông qua lời nhắc một lần chạm của người dùng để minh hoạ ý định đăng nhập của người dùng. Thay đổi này có thể gây ra sự gián đoạn ban đầu đối với tỷ lệ chuyển đổi đăng nhập tự động cho một số trang web.

Gần đây, trong M121, Chrome đã thực hiện một thay đổi đối với trải nghiệm người dùng trong quy trình đăng nhập tự động của FedCM. Bạn chỉ phải xác nhận lại khi cookie của bên thứ ba bị hạn chế. Điều này có nghĩa là:

  1. Trước khi các hạn chế sử dụng cookie của bên thứ ba được tăng cường lên 100% vào Quý 3 năm 2024, tính năng tự động đăng nhập FedCM không yêu cầu người dùng cũ xác nhận lại. Nếu người dùng xác nhận lại bằng giao diện người dùng FedCM, thì thao tác xác nhận lại này sẽ được tính vào yêu cầu cử chỉ của người dùng trong giai đoạn sau 3PCD.

  2. Tính năng đăng nhập tự động FedCM sẽ kiểm tra trạng thái xác nhận lại khi người dùng hạn chế cookie của bên thứ ba theo cách thủ công hiện tại hoặc theo mặc định trong Chrome sau này.

Với thay đổi này, tất cả các nhà phát triển tự động đăng nhập nên chuyển sang FedCM càng sớm càng tốt để giảm sự gián đoạn đối với tỷ lệ chuyển đổi đăng nhập tự động.

Đối với quy trình đăng nhập tự động, JavaScript của GIS sẽ không kích hoạt FedCM trên Chrome cũ (trước M121), ngay cả khi trang web của bạn chọn sử dụng FedCM.

Sự khác biệt trong hành trình của người dùng

Trải nghiệm Một lần chạm sử dụng FedCM và không dùng FedCM chỉ tương tự nhau chỉ có một chút khác biệt nhỏ.

Người dùng mới trong một phiên hoạt động

Khi sử dụng FedCM, tính năng Một lần chạm hiển thị tên miền thay vì tên ứng dụng.

Sử dụng FedCM Không có FedCM
Người dùng mới trong một phiên sử dụng FedCM Người dùng mới trong một phiên không sử dụng FedCM

Người dùng cũ trong một phiên (đã tắt tính năng tự động đăng nhập)

Khi sử dụng FedCM, tính năng Một lần chạm hiển thị tên miền thay vì tên ứng dụng.

Sử dụng FedCM Không có FedCM
Hành trình của người dùng cũ trong một phiên hoạt động bằng FedCM (đã tắt tính năng tự động đăng nhập) Hành trình của người dùng cũ trong một phiên không có FedCM (đã tắt tính năng tự động đăng nhập)

Người dùng cũ trong một phiên (đã bật tính năng tự động đăng nhập)

Khi sử dụng FedCM, người dùng có thể nhấp vào X để huỷ tự động đăng nhập trong vòng 5 giây thay vì nhấp vào nút Cancel (Huỷ).

Sử dụng FedCM Không có FedCM
Hành trình của người dùng cũ trong một phiên sử dụng FedCM (có bật tính năng tự động đăng nhập) Hành trình của người dùng cũ trong một phiên không sử dụng FedCM (có bật tính năng tự động đăng nhập)

Nhiều phiên

Khi sử dụng FedCM, tính năng Một lần chạm hiển thị tên miền thay vì tên ứng dụng.

Sử dụng FedCM Không có FedCM
Người dùng nhiều phiên sử dụng FedCM Người dùng nhiều phiên không sử dụng FedCM

Trước khi bắt đầu

Kiểm tra để đảm bảo rằng các chế độ cài đặt và phiên bản trình duyệt của bạn có hỗ trợ API FedCM (nên cập nhật lên phiên bản mới nhất).

  • API FedCM có trong Chrome 117 trở lên.

  • Chế độ cài đặt Đăng nhập qua bên thứ ba được bật trong Chrome.

  • Nếu trình duyệt Chrome phiên bản là 119 trở xuống, hãy mở chrome://flags và bật tính năng FedCmWithoutThirdPartyCookies thử nghiệm. Trình duyệt Chrome phiên bản 120 trở lên không cần thực hiện bước này.

Di chuyển ứng dụng web

Hãy làm theo các bước sau để bật FedCM, đánh giá tác động tiềm ẩn của quá trình di chuyển và nếu cần để thực hiện thay đổi đối với ứng dụng web hiện có của bạn:

1. Thêm một cờ boolean để bật FedCM khi khởi chạy bằng:

2. Xoá việc sử dụng phương thức isDisplayMoment(), isDisplayed(), isNotDisplayed()getNotDisplayedReason() trong mã của bạn.

Để cải thiện quyền riêng tư của người dùng, lệnh gọi lại google.accounts.id.prompt không còn trả về bất kỳ thông báo khoảnh khắc hiển thị nào trong đối tượng PromptMomentNotication. Xoá mọi mã phụ thuộc vào các phương thức liên quan đến thời điểm hiển thị. Đó là phương thức isDisplayMoment(), isDisplayed(), isNotDisplayed()getNotDisplayedReason().

3. Xoá việc sử dụng phương thức getSkippedReason() trong mã.

Mặc dù khoảnh khắc bỏ qua, isSkippedMoment(), vẫn sẽ được gọi từ lệnh gọi lại google.accounts.id.prompt trong đối tượng PromptMomentNotication, nhưng lý do chi tiết sẽ không được cung cấp. Xoá khỏi mã của bạn mọi mã phụ thuộc vào phương thức getSkippedReason().

Xin lưu ý rằng thông báo về khoảnh khắc bị loại bỏ (isDismissedMoment()) và phương thức lý do chi tiết liên quan (getDismissedReason()) sẽ không thay đổi khi FedCM được bật.

4. Xoá position thuộc tính kiểu position khỏi data-prompt_parent_idintermediate_iframes.

Trình duyệt kiểm soát kích thước và vị trí lời nhắc của người dùng, không hỗ trợ các vị trí tuỳ chỉnh cho tính năng Một lần chạm trên máy tính.

5. Cập nhật bố cục trang nếu cần.

Trình duyệt kiểm soát kích thước và vị trí của lời nhắc người dùng. Tuỳ thuộc vào bố cục của các trang riêng lẻ, một số nội dung có thể phủ lên dưới dạng vị trí tuỳ chỉnh cho tính năng Một lần chạm trên máy tính không được hỗ trợ theo bất kỳ cách nào, chẳng hạn như thuộc tính kiểu, data-prompt_parent_id, intermediate_iframes, iframe tuỳ chỉnh và các cách sáng tạo khác.

Hãy thay đổi bố cục trang để cải thiện trải nghiệm người dùng khi thông tin quan trọng bị che khuất. Không tạo trải nghiệm người dùng xung quanh lời nhắc Một lần chạm ngay cả khi bạn cho rằng lời nhắc đó đang ở vị trí mặc định. Vì API FedCM phụ thuộc vào trình duyệt, nên các nhà cung cấp trình duyệt có thể đặt vị trí của lời nhắc hơi khác nhau.

6. Thêm thuộc tính allow="identity-credentials-get" vào khung gốc nếu ứng dụng web của bạn gọi API Một lần chạm từ các iframe nhiều nguồn gốc.

Iframe được coi là nhiều nguồn gốc nếu nguồn gốc của nó không giống hoàn toàn với gốc. Ví dụ:

  • Các miền khác nhau: https://example1.comhttps://example2.com
  • Các miền cấp cao nhất khác nhau: https://example.ukhttps://example.jp
  • Miền con: https://example.comhttps://login.example.com

    Để cải thiện quyền riêng tư của người dùng, khi API Một lần chạm được gọi qua iframe nhiều nguồn gốc, bạn phải thêm thuộc tính allow="identity-credentials-get" vào mọi thẻ iframe của khung gốc:

    <iframe src="https://your.cross-origin/onetap.page" allow="identity-credentials-get"></iframe>
    

    Nếu ứng dụng của bạn sử dụng iframe chứa một iframe khác, bạn phải đảm bảo rằng thuộc tính này được thêm vào mọi iframe, bao gồm cả mọi iframe phụ.

    Ví dụ: xem xét những tình huống sau:

  • Tài liệu trên cùng (https://www.example.uk) chứa một iframe có tên "Iframe A", iframe này nhúng một trang (https://logins.example.com).

  • Trang được nhúng này (https://logins.example.com) cũng chứa một iframe tên là "Iframe B", iframe này sẽ nhúng thêm một trang (https://onetap.example2.com) có lưu trữ một lần chạm.

    Để đảm bảo rằng tính năng Một lần chạm có thể hiển thị đúng cách, bạn phải thêm thuộc tính này vào cả thẻ Iframe A và Iframe B.

    Chuẩn bị cho các câu hỏi liên quan đến lời nhắc Một lần chạm không hiển thị. Các trang web khác có nguồn gốc khác có thể nhúng các trang lưu trữ tính năng Một lần chạm trong iframe của chúng. Bạn có thể nhận được nhiều phiếu yêu cầu hỗ trợ hơn liên quan đến việc tính năng Một lần chạm không hiển thị từ người dùng cuối hoặc chủ sở hữu trang web khác. Mặc dù chỉ chủ sở hữu trang web mới có thể cập nhật trên trang của họ, nhưng bạn có thể làm những việc sau để giảm thiểu tác động:

  • Hãy cập nhật tài liệu dành cho nhà phát triển để biết cách thiết lập iframe đúng cách để gọi trang web của bạn. Bạn có thể liên kết đến trang này trong tài liệu của mình.

  • Cập nhật trang Câu hỏi thường gặp dành cho nhà phát triển nếu có.

  • Hãy cho nhóm hỗ trợ của bạn biết sự thay đổi sắp tới này và chuẩn bị phản hồi trước cho yêu cầu.

  • Chủ động liên hệ với các đối tác, khách hàng hoặc chủ sở hữu trang web bị ảnh hưởng để quá trình chuyển đổi FedCM diễn ra suôn sẻ.

7. Bổ sung những chỉ thị này vào Chính sách bảo mật nội dung (CSP) của bạn.

Bạn không bắt buộc phải thực hiện bước này vì không phải trang web nào cũng chọn xác định CSP.

  • Nếu không sử dụng CSP trong trang web của bạn, thì bạn không cần thay đổi gì.

  • Nếu CSP của bạn hoạt động với tính năng Một lần chạm hiện tại và bạn không sử dụng connect-src, frame-src, script-src, style-src hoặc default-src thì không cần thay đổi.

  • Nếu không, hãy làm theo hướng dẫn này để thiết lập CSP. Nếu không thiết lập CSP đúng cách, FedCM One Tap sẽ không hiển thị trên trang web.

8. Xoá chế độ hỗ trợ Accelerated Mobile Pages (AMP) dùng để đăng nhập.

Hỗ trợ đăng nhập người dùng cho AMP là một tính năng không bắt buộc của GIS mà ứng dụng web của bạn có thể đã triển khai. Nếu trường hợp này xảy ra,

Xoá mọi mục tham chiếu đến:

  • amp-onetap-google phần tử tuỳ chỉnh và

  • <script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script>
    

    Hãy cân nhắc việc chuyển hướng yêu cầu đăng nhập từ AMP sang quy trình đăng nhập bằng HTML của trang web. Xin lưu ý rằng Intermediate Iframe Support API liên quan sẽ không bị ảnh hưởng.

Kiểm thử và xác minh quá trình di chuyển

Sau khi thực hiện những thay đổi cần thiết dựa trên các bước trước đó, bạn có thể xác minh rằng quá trình di chuyển đã thành công.

  1. Xác nhận rằng trình duyệt của bạn hỗ trợ FedCM và bạn đang dùng một phiên Tài khoản Google.

  2. Chuyển đến(các) trang Một lần chạm trong ứng dụng của bạn.

  3. Xác nhận rằng lời nhắc Một lần chạm đã xuất hiện và phủ lên nội dung cơ bản một cách an toàn.

  4. Xác nhận thông tin xác thực chính xác sẽ trả về điểm cuối hoặc phương thức gọi lại của bạn khi đăng nhập vào ứng dụng bằng tính năng Một lần chạm.

  5. Nếu tính năng tự động đăng nhập đang bật, hãy xác minh rằng tính năng huỷ hoạt động và sửa thông tin đăng nhập chính xác sẽ trả về điểm cuối hoặc phương thức gọi lại của bạn.

Thời gian chờ bằng một lần chạm

Thao tác nhấp vào biểu tượng Một lần chạm ở góc trên cùng bên phải sẽ đóng lời nhắc và chuyển sang thời gian chờ. Điều này khiến lời nhắc bằng một lần chạm tạm thời không hiển thị. Trong Chrome, nếu muốn lời nhắc Một lần chạm hiển thị lại trước khi thời gian chờ kết thúc, bạn có thể đặt lại trạng thái thời gian chờ bằng cách nhấp vào biểu tượng khoá trong thanh địa chỉ rồi nhấp vào nút Đặt lại quyền.

Tự động đăng nhập trong khoảng thời gian yên tĩnh

Khi kiểm thử tính năng đăng nhập tự động Một lần chạm bằng FedCM, tính năng này có khoảng thời gian yên tĩnh 10 phút giữa mỗi lần đăng nhập tự động. Bạn không thể đặt lại thời gian yên lặng. Bạn sẽ phải đợi 10 phút hoặc sử dụng Tài khoản Google khác để kiểm thử nhằm kích hoạt lại tính năng tự động đăng nhập.

Thông tin hữu ích

Công cụ phân tích Hộp cát về quyền riêng tư (PSAT) là một tiện ích của Công cụ của Chrome cho nhà phát triển có các tính năng chuyên biệt giúp nhà phát triển xử lý việc ngừng sử dụng cookie của bên thứ ba và sử dụng các API thay thế. Công cụ này hoạt động bằng cách quét trang web của bạn để tìm các tính năng bị ảnh hưởng và cung cấp danh sách các thay đổi được đề xuất.