ข้อมูลอัปเดต FedCM ใน Chrome 143

เผยแพร่: 12 มกราคม 2026

Chrome 143 มีการอัปเดต Federated Credential Management (FedCM) API เพื่อปรับปรุงความเป็นส่วนตัว ประสบการณ์ของนักพัฒนาซอฟต์แวร์ และการทำงานร่วมกันของเบราว์เซอร์ การเปลี่ยนแปลงเหล่านี้อิงตามความคิดเห็นจากผู้ให้บริการข้อมูลประจำตัว (IdP), ฝ่ายที่เชื่อถือได้ (RP) และชุมชนเว็บ

การอัปเดตที่สำคัญมีดังนี้

รองรับการตอบสนองแบบ JSON ที่มีโครงสร้างจากปลายทางการยืนยันตัวตน

ก่อนหน้านี้ ID assertion endpoint ของ FedCM กำหนดให้พร็อพเพอร์ตี้ token ในการตอบกลับต้องเป็นสตริง ซึ่งทำให้ นักพัฒนาแอปต้องแปลงข้อมูลเป็นสตริง JSON ในเซิร์ฟเวอร์และแยกวิเคราะห์ ในไคลเอ็นต์ด้วยตนเอง

ตั้งแต่ Chrome 143 เป็นต้นไป ปลายทางการยืนยันตัวตน จะรองรับออบเจ็กต์ JSON ที่มีโครงสร้างเป็นค่าสำหรับพร็อพเพอร์ตี้ token เช่น

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

การเปลี่ยนแปลงนี้ช่วยให้ไม่ต้องทำการซีเรียลไลซ์และแยกวิเคราะห์ JSON ด้วยตนเอง และ ช่วยให้ IdP ส่งคืนข้อมูลเพิ่มเติมได้

ลองใช้ฟีเจอร์นี้กับเดโม FedCM หรือดูข้อมูลล่าสุดเกี่ยวกับโครงสร้างการตอบกลับของปลายทางการยืนยันรหัสที่อัปเดตแล้ว ได้ในคำแนะนำใช้ FedCM ในฝั่งผู้ให้บริการข้อมูลประจำตัว

ตรวจสอบข้อมูลเมตาของไคลเอ็นต์

FedCM กำลังเพิ่มความเข้มงวดในการตรวจสอบความถูกต้องของปลายทาง IdP เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ให้ดียิ่งขึ้น การเปลี่ยนแปลงนี้ป้องกัน ไม่ให้ IdP จับคู่ RP กับรหัสที่ไม่ซ้ำกันซึ่งส่งเป็นพารามิเตอร์เส้นทาง

หากการกำหนดค่า FedCM ใช้ปลายทาง client_metadata คุณต้องใส่ accounts_endpoint และ login_url ในไฟล์ .well-known/web-identity ตั้งแต่ Chrome 145 เป็นต้นไป เบราว์เซอร์จะบังคับใช้พารามิเตอร์ accounts_endpoint ในไฟล์ที่รู้จักกันดี

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

ดูรายละเอียดเพิ่มเติมได้ที่คู่มือการติดตั้งใช้งาน FedCM

การอัปเดตความสอดคล้องของ API และการจัดการข้อผิดพลาด

Chrome 143 มีการเปลี่ยนแปลง 2 อย่างเพื่อปรับปรุงความชัดเจนและความสอดคล้องของ FedCM API ในเบราว์เซอร์ต่างๆ ซึ่งสอดคล้องกับความคิดเห็นจากระบบนิเวศของเว็บ

ย้ายnonceพารามิเตอร์

ตั้งแต่เวอร์ชัน 145 เป็นต้นไป Chrome จะหยุดรองรับพารามิเตอร์ระดับบนสุด nonce คุณต้องส่งพารามิเตอร์ nonce ภายในออบเจ็กต์ params ในการเรียกใช้ 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"
      }
    }]
  }
});

ตรวจสอบว่าตรรกะฝั่งเซิร์ฟเวอร์คาดหวัง nonce ภายในออบเจ็กต์ params ใน ปลายทางการยืนยันรหัส

เปลี่ยนชื่อ IdentityCredentialError.code เป็น IdentityCredentialError.error

เราได้เปลี่ยนชื่อ IdentityCredentialError.code เป็น IdentityCredentialError.error เพื่อป้องกันไม่ให้ชื่อซ้ำกับพร็อพเพอร์ตี้ DOMException.code ในตัว การเปลี่ยนแปลงนี้จะมีผลบังคับใช้ตั้งแต่ Chrome 145 เป็นต้นไป

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

โปรดตรวจสอบทั้งพร็อพเพอร์ตี้ code และ error ในตรรกะการจัดการข้อผิดพลาดเพื่อให้มั่นใจว่ามีความเข้ากันได้แบบย้อนหลังในช่วงเปลี่ยนผ่าน (Chrome 143 และ 144) วิธีนี้ช่วยให้โซลูชันของคุณทำงานในเบราว์เซอร์รุ่นเก่าได้ในขณะที่ผู้ใช้อัปเดตเป็น Chrome เวอร์ชันใหม่กว่า

 // 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);
  }

ดูข้อมูลเพิ่มเติมได้ในส่วนส่งคืนการตอบกลับข้อผิดพลาด ของเอกสารประกอบ FedCM

แชร์ความคิดเห็น

เราให้ความสำคัญกับความคิดเห็นของคุณในขณะที่เราพัฒนาและปรับปรุง FedCM ต่อไป หากมีข้อเสนอแนะหรือพบปัญหา ให้ทำดังนี้

ดูข้อมูลเพิ่มเติม