Email Verification API เป็นข้อเสนอที่ช่วยให้เบราว์เซอร์สื่อสาร กับผู้ให้บริการอีเมลได้โดยตรงเพื่อยืนยันว่าผู้ใช้เป็นเจ้าของอีเมล ผู้ใช้ป้อนอีเมล ส่งแบบฟอร์ม และเว็บไซต์จะยืนยันโทเค็นการยืนยันอีเมลที่ลงชื่อจากเบราว์เซอร์กับผู้ให้บริการโดยไม่ต้องส่งอีเมลหรือขัดขวางขั้นตอนของผู้ใช้
เมื่อรวบรวมอีเมลระหว่างการลงชื่อสมัครใช้ การลงชื่อเข้าใช้ การชำระเงิน การสมัครรับจดหมายข่าว หรือการกู้คืนบัญชี โดยปกติแล้วเว็บไซต์จะยืนยันว่าผู้ที่ ส่งแบบฟอร์มควบคุมอีเมลนั้น วิธีการยืนยันที่มีอยู่ กำหนดให้ผู้ใช้ออกจากเว็บไซต์ สลับแอปเพื่อตรวจสอบกล่องจดหมาย คัดลอก OTP หรือคลิกลิงก์ยืนยัน การหยุดชะงักนี้จะเพิ่มการออกกลางคันและการละทิ้งเซสชัน ทั้งสำหรับผู้ใช้ที่เป็นมนุษย์และเอเจนต์อัตโนมัติ ผู้ใช้มักพบปัญหา กับวิธีการยืนยันที่มีอยู่ เช่น อีเมลล่าช้า ลิงก์หมดอายุ หรือรหัสที่ไม่รู้จัก
การยืนยันอีเมลจะทำหน้าที่เป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องให้กับโฟลว์ที่มีอยู่
- ไม่มีการหยุดชะงัก: การยืนยันจะเกิดขึ้นในเบื้องหลังขณะที่ผู้ใช้ กรอกแบบฟอร์ม
- ไม่จำเป็นต้องตรวจหาฟีเจอร์: เว็บไซต์จะเพิ่มช่องป้อนอีเมลและช่องป้อนโทเค็นที่ซ่อนไว้ ลงในแบบฟอร์ม หากเบราว์เซอร์หรือผู้ให้บริการไม่รองรับ การยืนยันอีเมล หรือหากการยืนยันล้มเหลว เว็บไซต์จะกลับไปใช้ ขั้นตอนการยืนยันอีเมลเริ่มต้น
- ลดความเสี่ยงในการฟิชชิง: ไม่มีโค้ดให้คัดลอกหรือโอกาสที่จะ ส่งผู้ใช้ไปยังเว็บไซต์ปลอม
ลิงก์ที่มีประโยชน์
- อีเมลยืนยัน API ใน GitHub
- โปรโตคอลการยืนยันอีเมลใน GitHub
- การยืนยันอีเมลในสถานะแพลตฟอร์ม Chrome
- การลงทะเบียนช่วงทดลองใช้จากต้นทางสำหรับการยืนยันอีเมล
คุณทดสอบโฟลว์ในเดโมได้โดยทำดังนี้
- การสาธิตผู้ออกบัตร: มีบัญชีอีเมลจำลอง และเซสชันที่ลงชื่อเข้าใช้
- การสาธิตโปรแกรมตรวจสอบ: ยืนยันอีเมล สาธิตหรืออีเมลของผู้ให้บริการที่เข้าร่วม
ข้อควรพิจารณาเกี่ยวกับช่วงทดลองใช้จากต้นทาง
ช่วงทดลองใช้จากต้นทางเป็นการทดลองเพื่อรวบรวมความคิดเห็น ดังนั้นความคิดเห็นของคุณจึงมีความสำคัญอย่างยิ่งหากคุณเข้าร่วมในฐานะผู้ให้บริการที่ต้องพึ่งพาหรือผู้ให้บริการข้อมูลประจำตัว หากต้องการรายงานปัญหา ให้ใช้ที่เก็บ GitHub ต่อไปนี้
- API การยืนยันอีเมลของเบราว์เซอร์: WICG/email-verification
- โปรโตคอลการยืนยันอีเมล: dickhardt/email-verification
หากพบข้อบกพร่องในการใช้งาน Chrome โปรดรายงานปัญหาในคอมโพเนนต์ต่อไปนี้
คุณควบคุมฟังก์ชันช่วงทดลองใช้จากต้นทางแบบต่อการตอบกลับได้โดยการรวมโทเค็นช่วงทดลองใช้จากต้นทาง ซึ่งจะช่วยให้คุณจำกัดฟีเจอร์ไว้สำหรับ กลุ่มผู้ใช้ที่เฉพาะเจาะจง เช่น กลุ่มประชากรที่ใช้ในการทดสอบ A/B หรือหากคุณมีกลุ่มผู้ใช้ที่ทดสอบเวอร์ชันเบต้าหรือกลุ่มผู้ใช้ที่ใช้ตัวอย่างเวอร์ชันแรก คุณอาจต้องการหรือจำเป็นต้องเปิดใช้ฟีเจอร์นี้สำหรับผู้ใช้เหล่านั้น ในกรณีนี้ ให้ตรวจสอบกับอีเมลที่ระบุ ก่อนออกหรือตรวจสอบโทเค็น
นอกจากนี้ ช่วงทดลองใช้จากต้นทางยังมีขีดจำกัดการเข้าชมเพื่อลดจำนวนเว็บไซต์ที่ใช้ฟีเจอร์นี้ ก่อนเปิดตัว API ของผู้ออกอยู่ระหว่างการพัฒนา และคุณควรคาดหวัง การเปลี่ยนแปลงที่เข้ากันไม่ได้แบบย้อนหลังพร้อมกับการอัปเดต UX ของ Chrome
โปรดติดตามข้อมูลอัปเดตเพิ่มเติมในบล็อกที่นี่และใน evp-announce@chromium.org รายชื่ออีเมลเมื่อการพัฒนาคืบหน้า
ขั้นตอนการยืนยันอีเมล
ส่วนต่อไปนี้จะอธิบายคำศัพท์สำคัญและขั้นตอนโปรโตคอลเมื่อใช้ Email Verification API
คำสำคัญ
คำสำคัญสำหรับ API การยืนยันอีเมลมีดังนี้
- ผู้ยืนยัน: เว็บไซต์ที่รวบรวมอีเมลและต้องการยืนยัน อีเมลนั้น โดยผู้ยืนยันจะเรียกว่าฝ่ายที่ต้องอาศัยข้อมูลด้วย
- ผู้ให้บริการอีเมล: บริการที่ให้อีเมลแก่ผู้ใช้ เช่น
gmail.com - ผู้ออก: บริการที่จัดการบัญชีสำหรับอีเมลของผู้ใช้ เช่น
accounts.google.comผู้ออกใบรับรองยังเรียกว่าผู้ให้บริการข้อมูลประจำตัวด้วย
ในบางกรณี ผู้ให้บริการอีเมลและผู้ออกใบรับรองจะดำเนินการจากโดเมนเดียวกัน
อย่างไรก็ตาม คุณควรแยกความแตกต่างระหว่างทั้ง 2 API เนื่องจาก Email
Verification API ใช้เซสชันที่ใช้งานอยู่ในเบราว์เซอร์กับผู้ให้บริการข้อมูลประจำตัว
เป็นวิธีการยืนยัน เช่น หากต้องการยืนยัน example@gmail.com
ผู้ใช้ต้องลงชื่อเข้าใช้ google.com ด้วยบัญชีนั้นในเบราว์เซอร์เดียวกัน
ลำดับการทำงานของโปรโตคอล
- การแสดงแบบฟอร์ม: ฝ่ายที่เชื่อถือได้จะแสดงแบบฟอร์ม HTML ที่มี
<input type="email">และอินพุตที่ซ่อนอยู่ซึ่งทำเครื่องหมายด้วยautocomplete="email-verification-token"และnonceที่ไม่ซ้ำกันต่ออินสแตนซ์ - การป้อนอีเมล: เมื่อผู้ใช้ป้อนอีเมล ไม่ว่าจะโดยการเลือก
คำแนะนำในการป้อนข้อความอัตโนมัติ หรือโดยการพิมพ์หรือวางและออกจากช่อง
(
blur) เบราว์เซอร์จะทริกเกอร์การยืนยันในเบื้องหลัง - การค้นหาและเซสชัน: เบราว์เซอร์จะค้นหาบันทึก DNS TXT สำหรับ
_email-verification.<email-domain>เพื่อค้นหาต้นทางของผู้ออกใบรับรองที่ได้รับอนุญาตของ ผู้ให้บริการ จากนั้นจะตรวจสอบว่าผู้ใช้มีเซสชันที่ใช้งานอยู่หรือไม่โดยใช้การกำหนดค่า.well-known/web-identityของผู้ออกใบรับรองและปลายทางของบัญชี FedCM หากโดเมนไม่ได้เผยแพร่ระเบียน EVP หรือไม่มีเซสชันที่ใช้งานอยู่ เบราว์เซอร์จะหยุดการยืนยันโดยไม่ต้องแจ้งให้ผู้ใช้ทราบ - การออกโทเค็น: เบราว์เซอร์จะค้นหา
issuance_endpointของผู้ให้บริการจาก.well-known/email-verificationสร้างคู่คีย์ชั่วคราว และ ส่งคำขอ HTTPPOSTโดยใช้ลายเซ็นข้อความ HTTP (RFC 9421) พร้อม คุกกี้เซสชันแบบบุคคลที่หนึ่งของผู้ให้บริการและอีเมลเป้าหมายเพื่อรับ โทเค็นการยืนยันอีเมลที่ลงชื่อ (EVT) - การเชื่อมโยงคีย์และการส่ง: เบราว์เซอร์จะเชื่อมโยง
EVTที่ลงชื่อแล้วกับต้นทางของ ผู้ให้บริการที่เชื่อถือได้และแบบฟอร์มnonceภายใน JWT การเชื่อมโยงคีย์ (KB-JWT) เมื่อผู้ใช้ส่งแบบฟอร์ม Chrome จะป้อนข้อมูลอินพุตที่ซ่อนด้วยโทเค็นที่รวมกัน (<EVT>~<KB-JWT>) และแสดงการแจ้งเตือนขนาดเล็ก เพื่อแจ้งให้ผู้ใช้ทราบว่าผู้ให้บริการอีเมลได้ยืนยันที่อยู่อีเมลแล้ว - ตรวจสอบการอ้างสิทธิ์และ KB: เซิร์ฟเวอร์ของบุคคลที่สามที่เชื่อถือได้จะแยกวิเคราะห์โทเค็น
<EVT>~<KB-JWT>ตรวจสอบการอ้างสิทธิ์ที่คาดไว้ (email,email_verified,aud,nonce,iatและexp) และยืนยันลายเซ็นการเชื่อมโยงคีย์กับคีย์สาธารณะชั่วคราวในcnf.jwk - DNS และคีย์สาธารณะ: ฝ่ายที่เชื่อถือจะค้นหาระเบียน TXT ของ DNS
_email-verification.<email-domain>เพื่อยืนยันว่าตรงกับคำกล่าวอ้างissของโทเค็น จากนั้นจะดึงข้อมูลเมตาและคีย์สาธารณะ.well-known/email-verificationของผู้ออกมาจากjwks_uri - ยืนยัน EVT และดำเนินการให้เสร็จสมบูรณ์: ฝ่ายที่เชื่อถือจะยืนยัน
EVTลายเซ็นของผู้ให้บริการโดยใช้JWKSสาธารณะของผู้ให้บริการ หากไม่ได้รับโทเค็นหรือขั้นตอนการ ตรวจสอบใดล้มเหลว เว็บไซต์จะกลับไปใช้กระบวนการยืนยัน ทางอีเมลที่มีอยู่
ครั้งแรกที่ผู้ใช้ยืนยันอีเมล Chrome จะแสดงข้อความแจ้งขอสิทธิ์ (กล่องโต้ตอบในเดสก์ท็อป หรือชีตด้านล่างใน Android) ก่อนที่จะขอโทเค็น หากได้รับสิทธิ์ ระบบจะจดจำสิทธิ์นี้ต่ออีเมลในเว็บไซต์ที่เข้าร่วม
การตั้งค่า Chrome
ผู้ใช้สามารถจัดการอีเมลที่ยืนยันแล้วได้โดยทำดังนี้
- ในคอมพิวเตอร์ ให้ไปที่การตั้งค่า > การป้อนข้อความอัตโนมัติและรหัสผ่าน > ข้อมูลติดต่อ > อีเมลที่ยืนยันแล้ว (หรือเปิด
chrome://settings/contactInfo) - ใน Android ให้ไปที่การตั้งค่า > ที่อยู่และอื่นๆ > อีเมลที่ยืนยันแล้ว
ผู้ใช้สามารถปิดใช้ฟีเจอร์นี้ทั้งหมดหรือจัดการอีเมลที่ยืนยันแล้วแต่ละรายการได้
ข้อควรพิจารณาเกี่ยวกับกรณีการใช้งาน
การยืนยันอีเมลเป็นการปรับปรุงขั้นตอนที่มีอยู่แบบค่อยเป็นค่อยไป ซึ่งจะช่วย ลดความจำเป็นที่ผู้ใช้ต้องออกจากเว็บไซต์เพื่อรับ OTP หรือคลิกลิงก์ เว็บไซต์สามารถเพิ่มช่องการยืนยันอีเมลลงในแบบฟอร์มที่เกี่ยวข้องทั้งหมด เช่น การเข้าสู่ระบบ การลงชื่อสมัครรับจดหมายข่าว การสร้างบัญชี และการกู้คืนรหัสผ่าน EVP จะทริกเกอร์ก็ต่อเมื่อเบราว์เซอร์รองรับเท่านั้น หากไม่ได้รับรหัสเมื่อส่ง หรือขั้นตอนการตรวจสอบใดๆ ล้มเหลว คุณสามารถกลับไปใช้ขั้นตอนการยืนยันทางอีเมลเริ่มต้น ได้ ซึ่งหมายความว่าไม่มีการตรวจหาฟีเจอร์สำหรับ API เว็บไซต์ผู้ยืนยันจะถือว่า EVT เป็นตัวเลือกและจะประมวลผลหากมีอยู่ใน คำขอ
การยืนยันทางอีเมลจะยืนยันว่าผู้ใช้มีเซสชันที่ใช้งานอยู่กับผู้ให้บริการอีเมล แต่ไม่ได้ยืนยันว่าอีเมลของคุณไปถึงผู้ใช้ คุณอาจยังคงต้องการส่งอีเมลต้อนรับหรืออีเมลเริ่มต้นใช้งานที่มีอยู่ และอาจต้องการหรือจำเป็นต้องแจ้งให้ผู้ใช้ตรวจสอบการตั้งค่าจดหมายขยะ