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.

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.