ยืนยันอีเมล

Email Verification API เป็นข้อเสนอที่ช่วยให้เบราว์เซอร์สื่อสาร กับผู้ให้บริการอีเมลได้โดยตรงเพื่อยืนยันว่าผู้ใช้เป็นเจ้าของอีเมล ผู้ใช้ป้อนอีเมล ส่งแบบฟอร์ม และเว็บไซต์จะยืนยันโทเค็นการยืนยันอีเมลที่ลงชื่อจากเบราว์เซอร์กับผู้ให้บริการโดยไม่ต้องส่งอีเมลหรือขัดขวางขั้นตอนของผู้ใช้

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

การสาธิตพรอมต์ผู้ใช้สำหรับการยืนยันอีเมล
การสาธิตพรอมต์ผู้ใช้สำหรับการยืนยันอีเมล

การยืนยันอีเมลจะทำหน้าที่เป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องให้กับโฟลว์ที่มีอยู่

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

คุณทดสอบโฟลว์ในเดโมได้โดยทำดังนี้

ข้อควรพิจารณาเกี่ยวกับช่วงทดลองใช้จากต้นทาง

ช่วงทดลองใช้จากต้นทางเป็นการทดลองเพื่อรวบรวมความคิดเห็น ดังนั้นความคิดเห็นของคุณจึงมีความสำคัญอย่างยิ่งหากคุณเข้าร่วมในฐานะผู้ให้บริการที่ต้องพึ่งพาหรือผู้ให้บริการข้อมูลประจำตัว หากต้องการรายงานปัญหา ให้ใช้ที่เก็บ GitHub ต่อไปนี้

หากพบข้อบกพร่องในการใช้งาน 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 ด้วยบัญชีนั้นในเบราว์เซอร์เดียวกัน

ลำดับการทำงานของโปรโตคอล

สถาปัตยกรรมขั้นตอนการยืนยันอีเมล
สถาปัตยกรรมขั้นตอนการยืนยันอีเมล
  1. การแสดงแบบฟอร์ม: ฝ่ายที่เชื่อถือได้จะแสดงแบบฟอร์ม HTML ที่มี <input type="email"> และอินพุตที่ซ่อนอยู่ซึ่งทำเครื่องหมายด้วย autocomplete="email-verification-token" และ nonce ที่ไม่ซ้ำกันต่ออินสแตนซ์
  2. การป้อนอีเมล: เมื่อผู้ใช้ป้อนอีเมล ไม่ว่าจะโดยการเลือก คำแนะนำในการป้อนข้อความอัตโนมัติ หรือโดยการพิมพ์หรือวางและออกจากช่อง (blur) เบราว์เซอร์จะทริกเกอร์การยืนยันในเบื้องหลัง
  3. การค้นหาและเซสชัน: เบราว์เซอร์จะค้นหาบันทึก DNS TXT สำหรับ _email-verification.<email-domain> เพื่อค้นหาต้นทางของผู้ออกใบรับรองที่ได้รับอนุญาตของ ผู้ให้บริการ จากนั้นจะตรวจสอบว่าผู้ใช้มีเซสชันที่ใช้งานอยู่หรือไม่โดยใช้การกำหนดค่า .well-known/web-identity ของผู้ออกใบรับรองและปลายทางของบัญชี FedCM หากโดเมนไม่ได้เผยแพร่ระเบียน EVP หรือไม่มีเซสชันที่ใช้งานอยู่ เบราว์เซอร์จะหยุดการยืนยันโดยไม่ต้องแจ้งให้ผู้ใช้ทราบ
  4. การออกโทเค็น: เบราว์เซอร์จะค้นหา issuance_endpoint ของผู้ให้บริการจาก .well-known/email-verification สร้างคู่คีย์ชั่วคราว และ ส่งคำขอ HTTP POST โดยใช้ลายเซ็นข้อความ HTTP (RFC 9421) พร้อม คุกกี้เซสชันแบบบุคคลที่หนึ่งของผู้ให้บริการและอีเมลเป้าหมายเพื่อรับ โทเค็นการยืนยันอีเมลที่ลงชื่อ (EVT)
  5. การเชื่อมโยงคีย์และการส่ง: เบราว์เซอร์จะเชื่อมโยง EVT ที่ลงชื่อแล้วกับต้นทางของ ผู้ให้บริการที่เชื่อถือได้และแบบฟอร์ม nonce ภายใน JWT การเชื่อมโยงคีย์ (KB-JWT) เมื่อผู้ใช้ส่งแบบฟอร์ม Chrome จะป้อนข้อมูลอินพุตที่ซ่อนด้วยโทเค็นที่รวมกัน (<EVT>~<KB-JWT>) และแสดงการแจ้งเตือนขนาดเล็ก เพื่อแจ้งให้ผู้ใช้ทราบว่าผู้ให้บริการอีเมลได้ยืนยันที่อยู่อีเมลแล้ว
  6. ตรวจสอบการอ้างสิทธิ์และ KB: เซิร์ฟเวอร์ของบุคคลที่สามที่เชื่อถือได้จะแยกวิเคราะห์โทเค็น <EVT>~<KB-JWT> ตรวจสอบการอ้างสิทธิ์ที่คาดไว้ (email, email_verified, aud, nonce, iat และ exp) และยืนยันลายเซ็นการเชื่อมโยงคีย์กับคีย์สาธารณะชั่วคราวใน cnf.jwk
  7. DNS และคีย์สาธารณะ: ฝ่ายที่เชื่อถือจะค้นหาระเบียน TXT ของ DNS _email-verification.<email-domain> เพื่อยืนยันว่าตรงกับคำกล่าวอ้าง iss ของโทเค็น จากนั้นจะดึงข้อมูลเมตาและคีย์สาธารณะ .well-known/email-verification ของผู้ออกมาจาก jwks_uri
  8. ยืนยัน EVT และดำเนินการให้เสร็จสมบูรณ์: ฝ่ายที่เชื่อถือจะยืนยันEVT ลายเซ็นของผู้ให้บริการโดยใช้JWKSสาธารณะของผู้ให้บริการ หากไม่ได้รับโทเค็นหรือขั้นตอนการ ตรวจสอบใดล้มเหลว เว็บไซต์จะกลับไปใช้กระบวนการยืนยัน ทางอีเมลที่มีอยู่

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

การตั้งค่า Chrome

ผู้ใช้สามารถจัดการอีเมลที่ยืนยันแล้วได้โดยทำดังนี้

  • ในคอมพิวเตอร์ ให้ไปที่การตั้งค่า > การป้อนข้อความอัตโนมัติและรหัสผ่าน > ข้อมูลติดต่อ > อีเมลที่ยืนยันแล้ว (หรือเปิด chrome://settings/contactInfo)
  • ใน Android ให้ไปที่การตั้งค่า > ที่อยู่และอื่นๆ > อีเมลที่ยืนยันแล้ว

ผู้ใช้สามารถปิดใช้ฟีเจอร์นี้ทั้งหมดหรือจัดการอีเมลที่ยืนยันแล้วแต่ละรายการได้

ข้อควรพิจารณาเกี่ยวกับกรณีการใช้งาน

การยืนยันอีเมลเป็นการปรับปรุงขั้นตอนที่มีอยู่แบบค่อยเป็นค่อยไป ซึ่งจะช่วย ลดความจำเป็นที่ผู้ใช้ต้องออกจากเว็บไซต์เพื่อรับ OTP หรือคลิกลิงก์ เว็บไซต์สามารถเพิ่มช่องการยืนยันอีเมลลงในแบบฟอร์มที่เกี่ยวข้องทั้งหมด เช่น การเข้าสู่ระบบ การลงชื่อสมัครรับจดหมายข่าว การสร้างบัญชี และการกู้คืนรหัสผ่าน EVP จะทริกเกอร์ก็ต่อเมื่อเบราว์เซอร์รองรับเท่านั้น หากไม่ได้รับรหัสเมื่อส่ง หรือขั้นตอนการตรวจสอบใดๆ ล้มเหลว คุณสามารถกลับไปใช้ขั้นตอนการยืนยันทางอีเมลเริ่มต้น ได้ ซึ่งหมายความว่าไม่มีการตรวจหาฟีเจอร์สำหรับ API เว็บไซต์ผู้ยืนยันจะถือว่า EVT เป็นตัวเลือกและจะประมวลผลหากมีอยู่ใน คำขอ

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