Email Verification API เป็นข้อเสนอที่ช่วยให้เบราว์เซอร์สื่อสารกับผู้ให้บริการอีเมลได้โดยตรงเพื่อยืนยันว่าผู้ใช้เป็นเจ้าของอีเมล โดยผู้ใช้ป้อนอีเมล ส่งแบบฟอร์ม และเว็บไซต์จะยืนยันโทเค็นการยืนยันอีเมลที่ลงชื่อแล้วจากเบราว์เซอร์กับผู้ให้บริการโดยไม่ต้องส่งอีเมลหรือขัดจังหวะขั้นตอนของผู้ใช้
เมื่อรวบรวมอีเมลระหว่างการลงชื่อสมัครใช้ การลงชื่อเข้าใช้ การชำระเงิน การสมัครรับจดหมายข่าว หรือการกู้คืนบัญชี โดยปกติแล้วเว็บไซต์จะยืนยันว่าผู้ส่งแบบฟอร์มควบคุมอีเมลดังกล่าว วิธีการยืนยันที่มีอยู่กำหนดให้ผู้ใช้ต้องออกจากเว็บไซต์ สลับแอปเพื่อตรวจสอบกล่องจดหมาย คัดลอก OTP หรือคลิกลิงก์สำหรับการยืนยัน การขัดจังหวะนี้จะเพิ่มอัตราการเลิกใช้และอัตราการละทิ้งเซสชันสำหรับทั้งผู้ใช้ที่เป็นบุคคลจริงและเอเจนต์อัตโนมัติ ผู้ใช้มักพบปัญหาเกี่ยวกับวิธีการยืนยันที่มีอยู่ เช่น อีเมลล่าช้า ลิงก์หมดอายุ หรือรหัสที่ไม่รู้จัก
การยืนยันอีเมลทำหน้าที่เป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องสำหรับขั้นตอนที่มีอยู่ ดังนี้
- ไม่มีการขัดจังหวะ: การยืนยันจะเกิดขึ้นในเบื้องหลังขณะที่ผู้ใช้ กรอกแบบฟอร์ม
- ไม่จำเป็นต้องตรวจหาฟีเจอร์: เว็บไซต์จะเพิ่มช่องป้อนข้อมูลอีเมลและช่องป้อนข้อมูลโทเค็นที่ซ่อนไว้ ลงในแบบฟอร์ม หากเบราว์เซอร์หรือผู้ให้บริการไม่รองรับการยืนยันอีเมล หรือหากการยืนยันล้มเหลว เว็บไซต์จะกลับไปใช้ขั้นตอนการยืนยันอีเมลเริ่มต้น
- ลดความเสี่ยงจากฟิชชิง: ไม่ต้องคัดลอกรหัสหรือไม่มีโอกาสที่จะ ส่งผู้ใช้ไปยังเว็บไซต์ปลอม
ลิงก์ที่มีประโยชน์
- ข้อกำหนด Email Verification API (WICG) (ที่เก็บ GitHub)
- ร่างโปรโตคอลการยืนยันอีเมล (IETF) (ที่เก็บ GitHub)
- การยืนยันอีเมลในสถานะแพลตฟอร์ม Chrome
- การลงทะเบียนเข้าร่วมช่วงทดลองใช้จากต้นทางสำหรับการยืนยันอีเมล
คุณสามารถทดสอบขั้นตอนการทำงานในการสาธิตได้ดังนี้
- การสาธิตผู้ออก: มีบัญชีอีเมลจำลอง และเซสชันที่ลงชื่อเข้าใช้
- การสาธิตผู้ยืนยัน: ยืนยันอีเมลสาธิต หรืออีเมลของผู้ให้บริการที่เข้าร่วม
ข้อควรพิจารณาเกี่ยวกับช่วงทดลองใช้จากต้นทาง
ช่วงทดลองใช้จากต้นทางเป็นการทดลองเพื่อรวบรวมความคิดเห็น ดังนั้นความคิดเห็นของคุณจึงมีความสำคัญอย่างยิ่งหากคุณเข้าร่วมในฐานะบุคคลที่สามที่เชื่อถือได้หรือผู้ให้บริการข้อมูลประจำตัว หากต้องการรายงานปัญหา ให้ใช้ที่เก็บ GitHub ต่อไปนี้
- Browser Email Verification API: WICG/email-verification
- Email Verification Protocol: dickhardt/email-verification
หากพบข้อบกพร่องในการใช้งาน Chrome ให้ยื่นเรื่องในคอมโพเนนต์ต่อไปนี้
คุณควบคุมฟังก์ชันการทำงานของช่วงทดลองใช้จากต้นทางตามการตอบสนองแต่ละรายการได้โดยใส่โทเค็นช่วงทดลองใช้จากต้นทาง ซึ่งจะช่วยให้คุณจำกัดฟีเจอร์ไว้สำหรับผู้ใช้บางกลุ่ม เช่น กลุ่มผู้ใช้ที่เข้าร่วมการทดสอบ A/B หรือหากคุณมีกลุ่มผู้ใช้ที่เข้าร่วมการทดสอบเบต้าหรือกลุ่มผู้ใช้ที่เข้าร่วมเวอร์ชันตัวอย่างทดลองใช้ คุณอาจต้องการหรือจำเป็นต้องเปิดใช้ฟีเจอร์นี้สำหรับผู้ใช้ดังกล่าว ในกรณีนี้ ให้ตรวจสอบกับอีเมลที่ระบุก่อนที่จะออกหรือตรวจสอบโทเค็น
ช่วงทดลองใช้จากต้นทางยังมีขีดจำกัดการเข้าชมเพื่อลดจำนวนเว็บไซต์ที่ใช้ฟีเจอร์นี้ก่อนเปิดตัว API ของผู้ออกอยู่ระหว่างการพัฒนา และคุณควรคาดการณ์การเปลี่ยนแปลงที่ไม่เข้ากันกับเวอร์ชันก่อนหน้าพร้อมกับการอัปเดต UX ของ Chrome
โปรดดูข้อมูลอัปเดตเพิ่มเติมในบล็อกที่นี่และใน evp-announce@chromium.org เมื่อการพัฒนาคืบหน้า
ขั้นตอนการยืนยันอีเมล
ส่วนต่อไปนี้จะอธิบายคำสำคัญและขั้นตอนโปรโตคอลเมื่อใช้ Email Verification API
คำสำคัญ
คำสำคัญสำหรับ Email Verification API มีดังนี้
- ผู้ยืนยัน: เว็บไซต์ที่รวบรวมอีเมลและต้องการยืนยันอีเมลดังกล่าว ผู้ยืนยันเรียกอีกอย่างว่า บุคคลที่สามที่เชื่อถือได้
- ผู้ให้บริการอีเมล: บริการที่ให้บริการอีเมลของผู้ใช้ เช่น
gmail.com - ผู้ออก: บริการที่จัดการบัญชีสำหรับอีเมลของผู้ใช้ เช่น
ตัวอย่าง
accounts.google.comผู้ออกเรียกอีกอย่างว่า ผู้ให้บริการ ข้อมูลประจำตัว
ในบางกรณี ผู้ให้บริการอีเมลและผู้ออกจะดำเนินการจากโดเมนเดียวกัน
อย่างไรก็ตาม คุณควรแยกความแตกต่างระหว่างผู้ให้บริการอีเมลและผู้ออก เนื่องจาก 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ของแบบฟอร์มภายใน Key Binding JWT (KB-JWT) และแสดงการแจ้งเตือนขนาดเล็กเพื่อแจ้งให้ผู้ใช้ทราบว่าผู้ให้บริการอีเมลได้ยืนยันอีเมลแล้ว เมื่อผู้ใช้ส่งแบบฟอร์ม Chrome จะป้อนข้อมูลรวม (<EVT>~<KB-JWT>) ลงในอินพุตที่ซ่อนไว้ - ตรวจสอบการอ้างสิทธิ์และ KB: เซิร์ฟเวอร์ของบุคคลที่สามที่เชื่อถือได้จะแยกวิเคราะห์โทเค็น
<EVT>~<KB-JWT>ตรวจสอบการอ้างสิทธิ์ที่คาดไว้ (email,email_verified,aud,nonce,iat, และexp) และยืนยันลายเซ็นการผูกคีย์กับคีย์สาธารณะชั่วคราวในcnf.jwk - DNS และคีย์สาธารณะ: บุคคลที่สามที่เชื่อถือได้จะค้นหาบันทึก DNS TXT
_email-verification.<email-domain>เพื่อยืนยันว่าตรงกับการอ้างสิทธิ์ ของโทเค็นissจากนั้นดึงข้อมูลเมตา.well-known/email-verificationและคีย์สาธารณะของผู้ออกจากjwks_uri - ยืนยัน EVT และดำเนินการให้เสร็จสมบูรณ์: บุคคลที่สามที่เชื่อถือได้จะยืนยันลายเซ็น
EVTของผู้ออกโดยใช้JWKSสาธารณะของผู้ให้บริการ หากไม่ได้รับโทเค็นหรือขั้นตอนการตรวจสอบใดๆ ล้มเหลว เว็บไซต์จะกลับไปใช้กระบวนการยืนยันอีเมลที่มีอยู่
เมื่อผู้ใช้ยืนยันอีเมลเป็นครั้งแรก Chrome จะแสดงข้อความแจ้งขอสิทธิ์ (กล่องโต้ตอบในเดสก์ท็อป หรือ Bottom Sheet ใน Android) ก่อนที่จะขอโทเค็น หากได้รับอนุญาต ระบบจะจดจำสิทธิ์นี้ต่ออีเมลในเว็บไซต์ที่เข้าร่วม
การตั้งค่า Chrome
ผู้ใช้สามารถจัดการอีเมลที่ยืนยันแล้วได้ดังนี้
- ในเดสก์ท็อป ให้ไปที่การตั้งค่า > การป้อนข้อความและรหัสผ่านอัตโนมัติ > ข้อมูลติดต่อ > อีเมลที่ยืนยันแล้ว (หรือเปิด
chrome://settings/contactInfo) - ใน Android ให้ไปที่การตั้งค่า > ที่อยู่และอื่นๆ > อีเมลที่ยืนยันแล้ว
ผู้ใช้สามารถปิดใช้ฟีเจอร์นี้ทั้งหมดหรือจัดการอีเมลที่ยืนยันแล้วแต่ละรายการได้
ข้อควรพิจารณาเกี่ยวกับกรณีการใช้งาน
การยืนยันอีเมลเป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องสำหรับขั้นตอนที่มีอยู่ ซึ่งช่วยให้ผู้ใช้ไม่ต้องออกจากเว็บไซต์เพื่อดึง OTP หรือคลิกลิงก์ เว็บไซต์สามารถเพิ่มช่องการยืนยันอีเมลลงในแบบฟอร์มที่เกี่ยวข้องทั้งหมด เช่น การเข้าสู่ระบบ การลงชื่อสมัครรับจดหมายข่าว การสร้างบัญชี และการกู้คืนรหัสผ่าน EVP จะเริ่มทำงานก็ต่อเมื่อเบราว์เซอร์รองรับ หากไม่ได้รับรหัสเมื่อส่งหรือขั้นตอนการตรวจสอบใดๆ ล้มเหลว คุณสามารถกลับไปใช้ขั้นตอนการยืนยันอีเมลเริ่มต้นได้ ซึ่งหมายความว่าไม่มีการตรวจหาฟีเจอร์สำหรับ API โดยเว็บไซต์ผู้ยืนยันจะถือว่า EVT เป็นตัวเลือก และจะประมวลผลหากมีอยู่ในคำขอ
การยืนยันอีเมลจะยืนยันว่าผู้ใช้มีเซสชันที่ใช้งานอยู่กับผู้ให้บริการอีเมล แต่จะไม่ยืนยันว่าอีเมลของคุณส่งถึงผู้ใช้แล้ว คุณอาจยังต้องการส่งอีเมลต้อนรับหรืออีเมลการเตรียมความพร้อมผู้ใช้งานใหม่ที่มีอยู่ และอาจต้องการหรือจำเป็นต้องแจ้งให้ผู้ใช้ตรวจสอบการตั้งค่าสแปม