Verifikasi Email

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.

Demo perintah pengguna Verifikasi Email
Demo perintah pengguna Verifikasi Email

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.

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:

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

Arsitektur alur Verifikasi Email
Arsitektur alur Verifikasi Email
  1. Presentasi formulir: Pihak tepercaya menyajikan formulir HTML yang berisi <input type="email"> dan input tersembunyi yang ditandai dengan autocomplete="email-verification-token" dan nonce unik per instance.
  2. 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.
  3. 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-identity penerbit dan endpoint akun FedCM. Jika domain tidak memublikasikan catatan EVP atau tidak ada sesi aktif, browser akan menghentikan verifikasi tanpa meminta pengguna.
  4. Penerbitan token: Browser menemukan issuance_endpoint penyedia dari .well-known/email-verification, membuat pasangan kunci sementara, dan mengirim permintaan HTTP POST menggunakan Tanda Tangan Pesan HTTP (RFC 9421) dengan cookie sesi pihak pertama penerbit dan alamat email target untuk menerima Token Verifikasi Email bertanda tangan (EVT).
  5. Pengikatan kunci dan pengiriman: Browser mengikat EVT yang ditandatangani ke origin pihak tepercaya dan formulir nonce di 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.
  6. Memvalidasi klaim dan KB: Server pihak tepercaya mengurai token <EVT>~<KB-JWT>, memvalidasi klaim yang diharapkan (email, email_verified, aud, nonce, iat, dan exp), serta memverifikasi tanda tangan pengikatan kunci terhadap kunci publik sementara di cnf.jwk.
  7. DNS dan kunci publik: Pihak tepercaya membuat kueri data TXT DNS _email-verification.<email-domain> untuk mengonfirmasi bahwa data tersebut cocok dengan klaim iss token, lalu mengambil metadata dan kunci publik penerbit .well-known/email-verification dari jwks_uri.
  8. Verifikasi EVT dan selesaikan: Pihak tepercaya memverifikasi tanda tangan EVTpenerbit menggunakan JWKS publik 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.