ตั้งแต่ Chrome 128 เป็นต้นไป Multi-IdP API จะเริ่มช่วงทดลองใช้จากต้นทางบนเดสก์ท็อป และ Button Mode API และ Continuation Bundle จะเริ่มช่วงทดลองใช้จากต้นทางบน Android ฟีเจอร์ Multi IdP ช่วยให้นักพัฒนาแอประบุอาร์เรย์ของผู้ให้บริการข้อมูลประจำตัวที่รองรับได้หลายรายการในการเรียกใช้ get()
ครั้งเดียว API โหมดปุ่มจะเพิ่ม UI ใหม่ เมื่อใช้ Button Mode API ผู้ให้บริการข้อมูลประจำตัวจะใช้ FedCM API ได้แม้ว่าผู้ใช้จะไม่มีเซสชัน IdP ที่ใช้งานอยู่ขณะเรียก API กลุ่มต่อเนื่องประกอบด้วย Continuation API และ Parameters API ซึ่งช่วยให้ได้รับประสบการณ์การใช้งานที่คล้ายกับขั้นตอนการให้สิทธิ์ OAuth ซึ่งเกี่ยวข้องกับกล่องโต้ตอบสิทธิ์ที่ IdP ระบุ นอกจากนี้ แพ็กเกจยังมีการเปลี่ยนแปลงอื่นๆ เช่น Fields API, configURL
หลายรายการ และป้ายกำกับบัญชีที่กำหนดเอง
ช่วงทดลองใช้จากต้นทาง: Multi IdP API
ฟีเจอร์นี้ช่วยให้ผู้ใช้เลือกบัญชีจากชุดผู้ให้บริการระบุตัวตนที่รองรับได้ และ RP จะได้รับประโยชน์จากอัตราการลงชื่อเข้าใช้และลงชื่อสมัครใช้ที่สูงขึ้น หากผู้ใช้เข้าสู่ระบบด้วย IdP หลายรายการ ระบบจะแจ้งให้ลงชื่อเข้าใช้ RP โดยใช้ IdP รายการใดรายการหนึ่ง
ระบบจะจัดลำดับความสำคัญของ IdP ตามบัญชีที่มีอยู่ของผู้ใช้และการประทับเวลาที่เกี่ยวข้อง
- หากผู้ใช้เคยเข้าสู่ระบบ RP ด้วย IdP ที่เฉพาะเจาะจง (กล่าวคือมี "บัญชีที่กลับมา") IdP เหล่านั้นจะแสดงเป็นรายการแรก
- ภายในบัญชีที่กลับมา ระบบจะจัดเรียง IdP ตามการประทับเวลาการใช้งานครั้งล่าสุด โดย IdP ที่ใช้ล่าสุดจะปรากฏที่ด้านบนสุดของรายการ ในบางกรณี Chrome อาจไม่มีข้อมูลการประทับเวลาสําหรับบัญชีที่กลับมา ซึ่งอาจเป็นเพราะผู้ใช้ลงชื่อเข้าใช้ก่อนที่จะมีการใช้บันทึกการประทับเวลาใน FedCM บัญชีเหล่านี้จะแสดงอยู่ใต้บัญชีที่มีการประทับเวลา
- หากผู้ใช้ไม่มีบัญชีที่กลับมาโดยใช้ IdP ใดๆ ระบบจะยึดตามลำดับที่ RP ระบุ
FedCM อนุญาตการตรวจสอบสิทธิ์ซ้ำโดยอัตโนมัติหากนักพัฒนาซอฟต์แวร์ขอ และหากมีบัญชีที่กลับมาบัญชีเดียว ในกรณีของ IdP หลายรายการ หากมีบัญชีที่กลับมาสำหรับ IdP หลายรายการ ระบบจะไม่ตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยอัตโนมัติ การมีบัญชีที่กลับมาใช้ใหม่เป็นข้อกำหนดที่สำคัญสำหรับการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติ เบราว์เซอร์จะเริ่มการตรวจสอบสิทธิ์อีกครั้งโดยอัตโนมัติก็ต่อเมื่อเบราว์เซอร์จดจำบัญชีดังกล่าวอย่างชัดเจน ซึ่งหมายความว่าผู้ใช้เคยใช้ FedCM กับบัญชีนี้ใน RP นี้มาก่อน
หากสถานะการเข้าสู่ระบบของผู้ใช้ตั้งค่าเป็นออกจากระบบสำหรับ IdP การเรียกใช้ FedCM จะไม่ดึงข้อมูลบัญชีสำหรับ IdP นั้น ในทำนองเดียวกัน หากสถานะของผู้ใช้ออกจากระบบสำหรับ IdP ที่มีอยู่ทั้งหมด ข้อความแจ้งให้ลงชื่อเข้าใช้ FedCM จะไม่แสดงในโหมดวิดเจ็ตโดยอัตโนมัติ
หากเข้าสู่ระบบด้วย IdP สถานะการเข้าสู่ระบบที่บันทึกไว้ในเบราว์เซอร์ของ IdP แต่คำขอดึงข้อมูลไม่แสดงบัญชีสำหรับ IdP นี้ (เช่น หากเซสชันของผู้ใช้หมดอายุ แต่เบราว์เซอร์ยังไม่อัปเดตสถานะการเข้าสู่ระบบ) UI ที่ไม่ตรงกันจะปรากฏสำหรับ IdP โดยแนะนำให้ผู้ใช้ลงชื่อเข้าใช้ด้วย IdP ที่ไม่ตรงกัน
อ่านข้อมูลเพิ่มเติมเกี่ยวกับสถานะการเข้าสู่ระบบได้ในเอกสารประกอบ ดูรายละเอียดการใช้งานเพิ่มเติมได้ที่คู่มือนักพัฒนาซอฟต์แวร์
ช่วงทดลองใช้จากต้นทาง: Multi IdP API
คุณสามารถลองใช้ Multi IdP API ในฐานะผู้ใช้ใน demo RP หรือในฐานะนักพัฒนาซอฟต์แวร์ที่ใช้ Chrome 128 ขึ้นไป
ลองใช้ในฐานะผู้ใช้
ลองด้วยตัวคุณเองในฐานะผู้ใช้ ตรวจสอบว่าเป็นไปตามนี้
- ไม่ได้กำหนดค่า Chrome ให้บล็อกข้อความแจ้งให้ลงชื่อเข้าใช้ของบุคคลที่สามในหน้าเว็บ:
chrome://settings/content/federatedIdentityApi
- คุณลงชื่อเข้าใช้ผู้ให้บริการระบุตัวตนแบบเดโมหลายราย ทำตามวิธีการในหน้าสาธิต
โปรดทราบว่าหากต้องการลองใช้ Multi-IdP ในเว็บไซต์ที่ไม่ได้ลงทะเบียนต้นทางสำหรับการทดลองใช้ต้นทาง คุณต้องเปิดใช้ Flag ฟีเจอร์ในส่วน chrome://flags/#fedcm-multi-idp
ลองใช้ในฐานะนักพัฒนาแอป
หากผู้ให้บริการเข้าสู่ระบบมี JavaScript SDK ฝังอยู่ใน RP (แนะนำ) ผู้ให้บริการสามารถใช้การเรียก navigator.credentials.get()
เพื่อเปิดใช้ IdP หลายรายการได้ และนักพัฒนาซอฟต์แวร์ RP ก็ไม่จำเป็นต้องเปลี่ยนโค้ด ไม่เช่นนั้น RP จะต้องเรียกใช้ FedCM API ด้วยตนเอง
หากต้องการทดสอบ IdP หลายแห่งบน RP ให้ระบุอาร์เรย์ของผู้ให้บริการที่รองรับดังนี้
try {
const cred = await navigator.credentials.get({
identity: {
providers: [
{
configUrl: "https://idp1.example/foo.json", // first IdP
clientId: "123",
},
{
configUrl: "https://idp2.example/bar.json", // second IdP
clientId: "456",
}
]
}
});
const token = cred.token;
const currentConfigFileUrl = cred.configURL;
if (cred.configURL === 'https://idp1.example/foo.json') {
// handle the token for idp1.example
} else if (cred.configURL === 'https://idp2.example/bar.json') {
// handle the token for idp2.example
}
} catch (error) {
console.error("Error during credential retrieval:", error);
}
แอตทริบิวต์ configURL
ภายในออบเจ็กต์ผลลัพธ์จะจัดเก็บ URL ของไฟล์การกำหนดค่าสำหรับ IdP ที่ผู้ใช้ตรวจสอบสิทธิ์ด้วย RP สามารถกำหนดวิธีจัดการ token
ที่ได้ เนื่องจากจะแตกต่างกันไปตาม IdP
เข้าร่วมช่วงทดลองใช้จากต้นทาง
ช่วงทดลองใช้จากต้นทางช่วยให้คุณลองใช้ฟีเจอร์ใหม่ๆ และแสดงความคิดเห็นเกี่ยวกับความสามารถในการใช้งาน ประโยชน์ และประสิทธิภาพของฟีเจอร์เหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่เริ่มต้นใช้งานการทดลองใช้ต้นทาง
คุณสามารถลองใช้ฟีเจอร์ Multi IdP ได้โดยลงทะเบียนเข้าร่วมการทดลองใช้เวอร์ชันต้นทางตั้งแต่ Chrome 128 เป็นต้นไป
หากต้องการลองใช้ IdP หลายรายการ RP สามารถลงทะเบียนต้นทางและเรียกใช้ช่วงทดลองใช้จากต้นทางของบุคคลที่หนึ่งได้ นอกจากนี้ IdP ยังลงทะเบียนช่วงทดลองใช้แหล่งที่มาของบุคคลที่สามและทำให้ฟีเจอร์ Multi IdP พร้อมใช้งานสำหรับ RP ทั้งหมดโดยใช้ SDK ของ JavaScript ได้อีกด้วย
ขั้นตอนในการเข้าร่วมการทดลองใช้จากต้นทาง
- ไปที่หน้าการลงทะเบียนช่วงทดลองใช้จากต้นทางของ Multi IdP API
- คลิกปุ่มลงทะเบียนและกรอกแบบฟอร์มเพื่อขอโทเค็น
- หากต้องการลงทะเบียนช่วงทดลองใช้จากต้นทางของบุคคลที่หนึ่ง ให้ป้อนต้นทางของ RP ในช่อง "ต้นทางเว็บ" สําหรับการทดสอบต้นทางของบุคคลที่สาม ให้ป้อนต้นทางของ JavaScript SDK ของ IdP แล้วเลือกช่อง "การจับคู่ของบุคคลที่สาม"
- คลิกส่ง
- ระบุโทเค็นที่ออกในหน้า RP ดังนี้
- สําหรับผู้เข้าร่วมช่วงทดลองใช้ 1P จากต้นทาง
- ใช้เป็นเมตาแท็กใน
<head>
:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- เป็นส่วนหัว HTTP:
Origin-Trial: TOKEN_GOES_HERE
- ใช้เป็นเมตาแท็กใน
- สําหรับผู้เข้าร่วมช่วงทดลองใช้จากต้นทางที่เป็นบุคคลที่สาม
- ให้บริการโทเค็นแบบเป็นโปรแกรม
- สําหรับผู้เข้าร่วมช่วงทดลองใช้ 1P จากต้นทาง
Button Mode API สำหรับ Chrome ใน Android
ใน Chrome เวอร์ชัน 128 ช่วงทดลองใช้ต้นทางของ API โหมดปุ่มจะเริ่มต้นใน Chrome บน Android โดยตามช่วงทดลองใช้บนเดสก์ท็อปครั้งแรก เมื่อใช้ Button Mode API ผู้ให้บริการข้อมูลประจำตัวจะใช้ FedCM API ได้แม้ว่าผู้ใช้จะออกจากระบบ IdP ขณะเรียกใช้ API ก็ตาม ขั้นตอนการลงชื่อเข้าใช้จะเริ่มต้นด้วยการจับคู่นิ้วของผู้ใช้ ซึ่งแสดงถึงเจตนาของผู้ใช้ได้ดียิ่งขึ้น
ใน Chrome 128 มีการเปิดตัวฟีเจอร์ใหม่ที่ช่วยให้ IdP สามารถใส่ไอคอนโลโก้อย่างเป็นทางการของ RP ได้โดยตรงในการตอบกลับปลายทางข้อมูลเมตาไคลเอ็นต์ ซึ่งจะช่วยปรับปรุง UI ในอุปกรณ์เคลื่อนที่ในโหมดปุ่ม
คุณสามารถกำหนดค่าไอคอนของ RP ที่ฝั่ง IdP และแสดงผลในการตอบกลับ client_metadata_endpoint
ได้เช่นเดียวกับการสร้างแบรนด์ IdP ในไฟล์การกำหนดค่า
"privacy_policy_url": "https://rp.example/privacy_policy.html",
"terms_of_service_url": "https://rp.example/terms_of_service.html",
"icons": [{
"url": "https://idp.example/rp-icon.ico",
"size": 40
}]
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับไอคอนได้ในเอกสารประกอบสําหรับนักพัฒนาซอฟต์แวร์
หากผู้ใช้ยังไม่ได้ลงชื่อเข้าใช้ FedCM จะแจ้งให้ผู้ใช้ลงชื่อเข้าใช้ IdP โดยใช้ login_url
ที่ IdP มีให้ผ่านแท็บที่กำหนดเองของ Chrome (CCT)
หากผู้ใช้ตรวจสอบสิทธิ์อีกครั้งด้วยบัญชีที่กลับมา ระบบจะไม่แสดง UI การเปิดเผยข้อมูล
หากต้องการลงทะเบียนช่วงทดลองใช้ต้นทาง โปรดดูวิธีการสำหรับ Button Mode API บนเดสก์ท็อป หากคุณลงชื่อสมัครใช้ช่วงทดลองใช้จากต้นทางบนเดสก์ท็อปไว้แล้ว ฟีเจอร์นี้จะพร้อมให้คุณใช้งานโดยอัตโนมัติใน Chrome ใน Android ตั้งแต่ Chrome 128 เป็นต้นไป
Continuation API Bundle สําหรับ Chrome ใน Android
ตั้งแต่ Chrome เวอร์ชัน 128 เป็นต้นไป Continuation API Bundle จะพร้อมใช้งานใน Chrome บน Android โดยเป็นส่วนหนึ่งของช่วงทดลองใช้จากต้นทาง ซึ่งต่อจากการทดลองใช้ครั้งแรกบนเดสก์ท็อป แพ็กเกจนี้ประกอบด้วยฟีเจอร์หลายอย่างของ FedCM รวมถึง Continuation API, Parameters API, Fields API, Multi configURLs และป้ายกำกับบัญชีที่กำหนดเอง
Continuation API เปิดใช้ขั้นตอนการลงชื่อเข้าใช้แบบหลายขั้นตอน Parameters API ช่วยให้ส่งพารามิเตอร์เพิ่มเติมไปยัง IdP ได้ Fields API ช่วยให้ RP ขอแอตทริบิวต์บัญชีที่เฉพาะเจาะจงสำหรับ UI การเปิดเผยข้อมูลในกล่องโต้ตอบ FedCM ได้ นอกจากนี้ configURL
หลายรายการยังรองรับไฟล์การกําหนดค่าหลายไฟล์สําหรับ IdP และป้ายกํากับบัญชีที่กําหนดเองช่วยให้ IdP กำกับเนื้อหาบัญชีเพื่อให้ RP กรองบัญชีตามป้ายกำกับเหล่านี้ได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับแพ็กเกจ Continuation API ได้ที่บล็อกโพสต์เรื่องแพ็กเกจ API อย่างต่อเนื่องบนเดสก์ท็อป หากต้องการลงทะเบียนเข้าร่วมช่วงทดลองใช้ต้นฉบับ ให้ทำตามวิธีการเหล่านี้ หากคุณลงชื่อสมัครใช้ช่วงทดลองใช้เวอร์ชันเดิมบนเดสก์ท็อปแล้ว ฟีเจอร์เหล่านี้จะพร้อมใช้งานใน Chrome บน Android โดยอัตโนมัติตั้งแต่ Chrome เวอร์ชัน 128 เป็นต้นไป
มีส่วนร่วมและแชร์ความคิดเห็น
หากคุณมีความคิดเห็นหรือพบปัญหาใดๆ คุณสามารถยื่นปัญหาได้ เราจะอัปเดตคู่มือนักพัฒนาซอฟต์แวร์ FedCM เวอร์ชัน Canonical ที่เป็นปัจจุบัน รวมถึงหน้าบันทึกการอัปเดตที่รวบรวมเอาไว้ด้วย