Nội dung cập nhật về FedCM trong Chrome 143

Ngày xuất bản: 12 tháng 1 năm 2026

Chrome 143 giới thiệu các bản cập nhật cho Federated Credential Management (FedCM) API để cải thiện quyền riêng tư, trải nghiệm của nhà phát triển và khả năng tương tác của trình duyệt. Những thay đổi này dựa trên ý kiến phản hồi của nhà cung cấp dịch vụ nhận dạng (IdP), bên phụ thuộc (RP) và cộng đồng web.

Sau đây là các nội dung cập nhật chính:

Hỗ trợ các phản hồi JSON có cấu trúc từ điểm cuối xác nhận danh tính

Trước đây, điểm cuối xác nhận danh tính FedCM yêu cầu thuộc tính token trong phản hồi phải là một chuỗi. Điều này buộc các nhà phát triển phải chuyển đổi tuần tự dữ liệu thành chuỗi JSON theo cách thủ công trên máy chủ và phân tích cú pháp trên ứng dụng.

Kể từ Chrome 143, điểm cuối xác nhận danh tính hỗ trợ một đối tượng JSON có cấu trúc làm giá trị cho thuộc tính token, ví dụ:

{
  "token": {
    "access_token": "a1b2c3d4e5f6...",
    "user_info": {
      "email": "jane.doe@company.example",
      "given_name": "Jane",
      "family_name": "Doe"
    }
  }
}

Thay đổi này giúp bạn không cần phải phân tích cú pháp và chuyển đổi tuần tự JSON theo cách thủ công, đồng thời cho phép IdP trả về thông tin bổ sung.

Hãy dùng thử tính năng này bằng bản minh hoạ FedCM hoặc tham khảo hướng dẫn Triển khai FedCM ở phía Nhà cung cấp dịch vụ danh tính để biết thông tin mới nhất về cách cấu trúc phản hồi của điểm cuối xác nhận danh tính đã cập nhật.

Xác thực siêu dữ liệu của ứng dụng

Để bảo vệ quyền riêng tư của người dùng hiệu quả hơn, FedCM đang tăng cường quy trình xác thực cho các điểm cuối IdP. Thay đổi này ngăn IdP so khớp RP với một mã nhận dạng duy nhất được truyền dưới dạng tham số đường dẫn.

Nếu cấu hình FedCM của bạn sử dụng điểm cuối client_metadata, thì bạn phải thêm accounts_endpointlogin_url vào tệp .well-known/web-identity. Từ Chrome 145, trình duyệt sẽ thực thi tham số accounts_endpoint trong tệp well-known.

{
  "accounts_endpoint": "/example-accounts",
  "login_url": "/example-login"
}

Để biết thêm thông tin chi tiết, hãy xem hướng dẫn triển khai FedCM.

Cập nhật tính nhất quán của API và cách xử lý lỗi

Chrome 143 giới thiệu 2 thay đổi để cải thiện tính rõ ràng và nhất quán của FedCM API trên các trình duyệt, phù hợp với ý kiến phản hồi của hệ sinh thái web.

Di chuyển tham số nonce

Kể từ phiên bản 145, Chrome sẽ ngừng hỗ trợ tham số nonce cấp cao nhất. Bạn phải truyền tham số nonce trong đối tượng params trong lệnh gọi navigator.credentials.get():

const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      // Don't pass nonce as a top-level parameter here
      configURL: "/fedcm.json",
      clientId: "123",
      params: {
     // Place nonce within the params object    
        nonce: "a-random-nonce"
      }
    }]
  }
});

Đảm bảo logic phía máy chủ của bạn dự kiến nonce trong đối tượng params trong điểm cuối xác nhận mã nhận dạng.

Đổi tên IdentityCredentialError.code thành IdentityCredentialError.error

Để tránh xung đột tên với thuộc tính DOMException.code tích hợp sẵn, IdentityCredentialError.code đã được đổi tên thành IdentityCredentialError.error. Thay đổi này sẽ được thực thi kể từ Chrome 145.

try {
  // FedCM API call
} catch (e) {
   // Renamed IdentityCredentialError.code to IdentityCredentialError.error:    
   console.log(e.error);
}

Để đảm bảo khả năng tương thích ngược trong giai đoạn chuyển đổi (Chrome 143 và 144), hãy kiểm tra cả thuộc tính codeerror trong logic xử lý lỗi của bạn. Điều này đảm bảo giải pháp của bạn hoạt động trong các trình duyệt cũ trong khi người dùng cập nhật lên các phiên bản Chrome mới hơn:

 // In older browsers, the property might still be named 'code'
 // during the transition period
  const errorCode = e.error ?? e.code;
  if (errorCode) {
    // Handle specific error types
  } else {
    console.error("An unknown error occurred", e);
  }

Tìm hiểu thêm trong phần Trả về phản hồi lỗi của tài liệu FedCM.

Chia sẻ ý kiến phản hồi của bạn

Chúng tôi rất coi trọng ý kiến đóng góp của bạn trong quá trình tiếp tục phát triển và cải thiện FedCM. Nếu bạn có ý kiến phản hồi hoặc gặp phải vấn đề:

Tìm hiểu thêm