Email Verification API adalah proposal yang memungkinkan browser berkomunikasi langsung dengan penyedia email untuk memverifikasi bahwa pengguna memiliki alamat email tersebut. Pengguna memasukkan email mereka, mengirimkan formulir, dan situs memverifikasi token verifikasi email bertanda tangan dari browser dengan penyedia tanpa mengirim email atau mengganggu alur pengguna.
Saat mengumpulkan alamat email selama pendaftaran, login, checkout, langganan newsletter, atau pemulihan akun, situs biasanya mengonfirmasi bahwa orang yang mengirimkan formulir mengontrol alamat tersebut. Metode verifikasi yang ada mengharuskan pengguna keluar dari situs Anda, beralih aplikasi untuk memeriksa kotak masuk mereka, menyalin OTP, atau mengklik link verifikasi. Gangguan ini meningkatkan pengabaian dan penghentian sesi untuk pengguna manusia dan agen otomatis. Pengguna sering kali mengalami hambatan dengan metode verifikasi yang ada, seperti email yang tertunda, link yang sudah tidak berlaku, atau kode yang tidak dikenali.
Verifikasi email berfungsi sebagai peningkatan progresif pada alur yang ada:
- Tidak ada gangguan: Verifikasi terjadi di latar belakang saat pengguna mengisi formulir.
- Tidak diperlukan deteksi fitur: Situs menambahkan input email dan input token tersembunyi ke formulirnya. Jika browser atau penyedia tidak mendukung verifikasi email, atau jika verifikasi gagal, situs akan kembali ke alur konfirmasi email defaultnya.
- Meminimalkan risiko phishing: Tidak ada kode yang dapat disalin atau peluang untuk mengarahkan pengguna ke situs palsu.
Link penting
- Email Verification API di GitHub
- Email Verification Protocol di GitHub
- Verifikasi Email di Status Platform Chrome
- Pendaftaran uji coba origin Verifikasi Email
Anda dapat menguji alur di demo:
- Demo penerbit: Menyediakan akun email tiruan dan sesi login.
- Demo verifier: Verifikasi email demo atau email penyedia yang berpartisipasi.
Pertimbangan uji coba origin
Uji coba origin adalah eksperimen untuk mengumpulkan masukan, jadi masukan Anda sangat penting jika Anda berpartisipasi sebagai pihak tepercaya atau penyedia identitas. Untuk melaporkan masalah, gunakan repositori GitHub berikut:
- Browser Email Verification API: WICG/email-verification
- Protokol Verifikasi Email: dickhardt/email-verification
Jika Anda menemukan bug dalam penerapan Chrome, laporkan masalah di komponen berikut:
Anda mengontrol fungsi uji coba origin berdasarkan per-respons dengan menyertakan token uji coba origin. Dengan begitu, Anda dapat membatasi fitur untuk segmen pengguna tertentu, seperti populasi pengujian A/B. Atau, jika Anda memiliki grup pengguna yang melakukan pengujian beta atau pratinjau awal, Anda mungkin ingin atau perlu mengaktifkan fitur tersebut untuk mereka. Dalam hal ini, periksa alamat email yang diberikan sebelum menerbitkan atau memvalidasi token.
Uji coba origin juga memiliki batas traffic untuk meminimalkan situs yang mengandalkan fitur tersebut sebelum peluncuran. Issuer API sedang dalam pengembangan, dan Anda harus memperkirakan perubahan yang tidak kompatibel dengan versi sebelumnya bersama dengan update pada UX Chrome.
Nantikan info terbaru lainnya di blog ini dan di milis evp-announce@chromium.org seiring perkembangan pengembangan.
Alur verifikasi email
Bagian berikut menjelaskan istilah utama dan langkah-langkah protokol saat menggunakan Email Verification API.
Istilah utama
Istilah utama untuk Email Verification API adalah:
- Pemverifikasi: Situs yang mengumpulkan alamat email dan ingin memverifikasinya. Verifier juga disebut Pihak Tepercaya.
- Penyedia Email: Layanan yang menyediakan alamat email pengguna, misalnya
gmail.com. - Penerbit: Layanan yang mengelola akun untuk email pengguna, misalnya
accounts.google.com. Penerbit juga disebut Penyedia Identitas.
Dalam beberapa kasus, penyedia email dan penerbit beroperasi dari domain yang sama.
Namun, penting untuk membedakannya karena Email
Verification API menggunakan sesi aktif di browser dengan penyedia
identitas sebagai metode verifikasi. Misalnya, untuk memverifikasi example@gmail.com, pengguna harus login ke google.com dengan akun tersebut di browser yang sama.
Alur protokol
- Presentasi formulir: Pihak tepercaya menyajikan formulir HTML yang berisi
<input type="email">dan input tersembunyi yang ditandai denganautocomplete="email-verification-token"dannonceunik per instance. - Entri email: Saat pengguna memasukkan alamat email - baik dengan memilih saran isi otomatis atau dengan mengetik atau menempelkan dan keluar dari kolom (
blur) - browser akan memicu verifikasi di latar belakang. - Penemuan dan sesi: Browser membuat kueri catatan TXT DNS untuk
_email-verification.<email-domain>guna menemukan asal penerbit yang sah dari penyedia, lalu memeriksa apakah pengguna memiliki sesi aktif menggunakan konfigurasi.well-known/web-identitypenerbit dan endpoint akun FedCM. Jika domain tidak memublikasikan catatan EVP atau tidak ada sesi aktif, browser akan menghentikan verifikasi tanpa meminta pengguna. - Penerbitan token: Browser menemukan
issuance_endpointpenyedia dari.well-known/email-verification, membuat pasangan kunci sementara, dan mengirim permintaan HTTPPOSTmenggunakan Tanda Tangan Pesan HTTP (RFC 9421) dengan cookie sesi pihak pertama penerbit dan alamat email target untuk menerima Token Verifikasi Email bertanda tangan (EVT). - Pengikatan kunci dan pengiriman: Browser mengikat
EVTyang ditandatangani ke origin pihak tepercaya dan formulirnoncedi dalam JWT Pengikatan Kunci (KB-JWT). Saat pengguna mengirimkan formulir, Chrome akan mengisi input tersembunyi dengan token gabungan (<EVT>~<KB-JWT>) dan menampilkan notifikasi kecil yang memberi tahu pengguna bahwa penyedia email mereka telah memverifikasi alamat mereka. - Memvalidasi klaim dan KB: Server pihak tepercaya mengurai token
<EVT>~<KB-JWT>, memvalidasi klaim yang diharapkan (email,email_verified,aud,nonce,iat, danexp), serta memverifikasi tanda tangan pengikatan kunci terhadap kunci publik sementara dicnf.jwk. - DNS dan kunci publik: Pihak tepercaya membuat kueri data TXT DNS
_email-verification.<email-domain>untuk mengonfirmasi bahwa data tersebut cocok dengan klaimisstoken, lalu mengambil metadata dan kunci publik penerbit.well-known/email-verificationdarijwks_uri. - Verifikasi EVT dan selesaikan: Pihak tepercaya memverifikasi tanda tangan
EVTpenerbit menggunakanJWKSpublik penyedia. Jika tidak ada token yang diterima atau langkah validasi gagal, situs akan kembali ke proses konfirmasi email yang ada.
Saat pengguna memverifikasi alamat email untuk pertama kalinya, Chrome akan menampilkan dialog izin (dialog di desktop, atau sheet bawah di Android) sebelum meminta token. Jika diberikan, izin ini akan diingat per alamat email di seluruh situs yang berpartisipasi.
Setelan Chrome
Pengguna dapat mengelola email terverifikasi mereka:
- Di desktop, di bagian Setelan > Isi otomatis dan sandi > Info
kontak > Email Terverifikasi (atau buka
chrome://settings/contactInfo) - Di Android, di bagian Setelan > Alamat dan lainnya > Email Terverifikasi
Pengguna dapat menonaktifkan fitur ini sepenuhnya atau mengelola setiap alamat email terverifikasi.
Pertimbangan kasus penggunaan
Verifikasi email adalah peningkatan progresif pada alur yang ada yang menghilangkan kebutuhan pengguna untuk keluar dari situs Anda guna mengambil OTP atau mengklik link. Situs dapat menambahkan kolom verifikasi email ke semua formulir yang relevan, seperti login, pendaftaran newsletter, pembuatan akun, dan pemulihan sandi. EVP dipicu hanya jika browser mendukungnya. Jika tidak ada kode yang diterima saat pengiriman atau salah satu langkah validasi gagal, Anda dapat kembali ke alur konfirmasi email default. Artinya, tidak ada deteksi fitur untuk API; situs verifikasi memperlakukan EVT sebagai opsional, memprosesnya jika ada dalam permintaan.
Verifikasi email mengonfirmasi bahwa pengguna memiliki sesi aktif dengan penyedia alamat emailnya. Hal ini tidak memverifikasi bahwa email Anda telah sampai ke pengguna. Anda mungkin masih ingin mengirim email selamat datang atau aktivasi yang sudah ada dan mungkin ingin atau perlu meminta pengguna untuk memeriksa setelan spam mereka.