เผยแพร่: 12 มกราคม 2026
Chrome 143 มีการอัปเดต Federated Credential Management (FedCM) API เพื่อปรับปรุงความเป็นส่วนตัว ประสบการณ์ของนักพัฒนาซอฟต์แวร์ และการทำงานร่วมกันของเบราว์เซอร์ การเปลี่ยนแปลงเหล่านี้อิงตามความคิดเห็นจากผู้ให้บริการข้อมูลประจำตัว (IdP), ฝ่ายที่เชื่อถือได้ (RP) และชุมชนเว็บ
การอัปเดตที่สำคัญมีดังนี้
- รองรับการตอบสนองของ JSON ที่มีโครงสร้าง
- การตรวจสอบข้อมูลเมตาของไคลเอ็นต์ที่เข้มงวดมากขึ้น
- การปรับปรุงความสอดคล้องของ API
รองรับการตอบสนองแบบ 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 ต่อไป หากมีข้อเสนอแนะหรือพบปัญหา ให้ทำดังนี้
- แจ้งปัญหาในที่เก็บ GitHub ของเรา
- สมัครเข้าร่วมรายชื่ออีเมลจดหมายข่าวสำหรับนักพัฒนาแอป เพื่อติดตามประกาศล่าสุด