Email Verification API to propozycja, która umożliwia przeglądarce bezpośrednią komunikację z dostawcą poczty e-mail w celu potwierdzania adresu e-mail, że użytkownik jest właścicielem adresu e-mail. Użytkownicy wpisują swój adres e-mail, przesyłają formularz, a witryna weryfikuje podpisany token weryfikacji e-mail z przeglądarki u dostawcy bez wysyłania e-maila i przerywania procesu.
Podczas zbierania adresu e-mail w trakcie rejestracji, logowania, płatności, subskrypcji newslettera lub odzyskiwania konta witryny zwykle potwierdzają, że osoba przesyłająca formularz ma kontrolę nad tym adresem. Obecne metody weryfikacji wymagają od użytkowników opuszczenia witryny, przełączenia się na inne aplikacje, aby sprawdzić skrzynkę odbiorczą, skopiowania kodu jednorazowego lub kliknięcia linku weryfikacyjnego. To utrudnienie zwiększa liczbę rezygnacji i porzuceń sesji zarówno w przypadku użytkowników, jak i automatycznych agentów. Użytkownicy często napotykają problemy z obecnymi metodami weryfikacji, takie jak opóźnione e-maile, wygasłe linki lub nierozpoznane kody.
Potwierdzanie adresu e-mail działa jako progresywne ulepszenie dotychczasowego procesu:
- Brak zakłóceń: weryfikacja odbywa się w tle, gdy użytkownik wypełnia formularz.
- Nie jest wymagane wykrywanie funkcji: witryny dodają do swoich formularzy pole e-mail i ukryte pole tokena. Jeśli przeglądarka lub dostawca nie obsługuje potwierdzania adresu e-mail albo weryfikacja się nie powiedzie, witryna wraca do domyślnego procesu potwierdzania e-maila.
- Minimalizowanie ryzyka phishingu: nie ma kodu do skopiowania ani możliwości przekierowania użytkownika do fałszywej witryny.
Przydatne linki
- Specyfikacja Email Verification API (WICG) (repozytorium GitHub)
- Wersja robocza protokołu potwierdzania adresu e-mail (IETF) (repozytorium GitHub)
- Potwierdzanie adresu e-mail w Chrome Platform Status
- Rejestracja w wersji próbnej origin potwierdzania adresu e-mail
Proces możesz przetestować w wersji demonstracyjnej:
- Demo wystawcy: udostępnia przykładowe konto e-mail i sesję logowania.
- Demo weryfikatora: zweryfikuj przykładowy adres e-mail lub adres e-mail dowolnego uczestniczącego dostawcy.
Wskazówki dotyczące wersji próbnej origin
Wersje próbne origin to eksperymenty, które mają na celu zbieranie opinii, dlatego Twoje opinie są bardzo ważne, jeśli bierzesz udział jako strona ufająca lub dostawca tożsamości. Aby zgłosić problemy, użyj tych repozytoriów GitHub:
- Browser Email Verification API: WICG/email-verification
- Email Verification Protocol: dickhardt/email-verification
Jeśli napotkasz błędy w implementacji Chrome, zgłoś problem w tym komponencie:
Funkcjonalnością wersji próbnej origin możesz sterować na podstawie poszczególnych odpowiedzi, dodając token wersji próbnej origin. Dzięki temu możesz ograniczyć dostęp do funkcji do określonego segmentu użytkowników, np. do grupy testów A/B. Alternatywnie, jeśli masz grupę użytkowników testujących wersję beta lub wczesną wersję przedpremierową, możesz też włączyć tę funkcję dla nich. W takim przypadku przed wydaniem lub zweryfikowaniem tokena sprawdź podany adres e-mail.
Wersje próbne origin mają też limity ruchu, aby zminimalizować liczbę witryn korzystających z tej funkcji przed jej uruchomieniem. Interfejs API wystawcy jest w trakcie opracowywania, więc spodziewaj się zmian, które nie są wstecznie kompatybilne, oraz aktualizacji interfejsu Chrome.
W miarę postępów prac będziemy publikować aktualizacje na blogu i na evp-announce@chromium.org liście mailingowej.
Proces potwierdzania adresu e-mail
W kolejnych sekcjach wyjaśniamy kluczowe terminy i kroki protokołu podczas korzystania z Email Verification API.
Kluczowe terminy
Kluczowe terminy dotyczące Email Verification API:
- Weryfikator: witryna, która zbiera adres e-mail i chce go zweryfikować. Weryfikator jest też nazywany stroną ufającą.
- Dostawca poczty e-mail: usługa udostępniająca adres e-mail użytkownika, np.
przykład
gmail.com. - Wystawca: usługa, która zarządza kontem e-mail użytkownika, np.
przykład
accounts.google.com. Wystawca jest też nazywany dostawcą tożsamości.
W niektórych przypadkach dostawca poczty e-mail i wystawca działają w tej samej domenie.
Ważne jest jednak, aby je odróżniać, ponieważ Email Verification API używa aktywnej sesji w przeglądarce z dostawcą tożsamości jako metodą weryfikacji. Aby na przykład zweryfikować example@gmail.com
użytkownik musi być zalogowany(-a) na konto google.com w tej samej
przeglądarce.
Proces protokołu
- Wyświetlanie formularza: strona ufająca wyświetla formularz HTML zawierający element
<input type="email">i ukryte pole oznaczone atrybutemautocomplete="email-verification-token"oraz unikalny dla każdej instancji elementnonce. - Wpisywanie adresu e-mail: gdy użytkownik wpisze adres e-mail – wybierając
sugestię autouzupełniania, wpisując lub wklejając tekst i opuszczając pole
(
blur) – przeglądarka uruchamia weryfikację w tle. - Wykrywanie i sesja: przeglądarka wysyła zapytanie do rekordu DNS TXT dla
_email-verification.<email-domain>w celu wykrycia autoryzowanego źródła wystawcy, a następnie sprawdza, czy użytkownik ma aktywną sesję, korzystając z konfiguracji.well-known/web-identitywystawcy i punktów końcowych kont FedCM. Jeśli domena nie publikuje rekordu EVP lub nie ma aktywnej sesji, przeglądarka zatrzymuje weryfikację bez wyświetlania monitu dla użytkownika. - Wydawanie tokena: przeglądarka wykrywa punkt końcowy dostawcy
issuance_endpointw.well-known/email-verification, tworzy efemeryczną parę kluczy i wysyła żądanie HTTPPOSTza pomocą podpisów wiadomości HTTP (RFC 9421) z plikami cookie sesji własnej wystawcy i docelowym adresem e-mail, aby otrzymać podpisany token potwierdzania adresu e-mail (EVT). - Powiązanie klucza i przesłanie: przeglądarka wiąże podpisany token
EVTze źródłem strony ufającej i elementemnonceformularza wewnątrz tokena JWT powiązania klucza (KB-JWT) i wyświetla małe powiadomienie informujące użytkownika, że jego dostawca poczty e-mail zweryfikował adres. Gdy użytkownik prześle formularz, Chrome wypełni ukryte pole połączonym tokenem (<EVT>~<KB-JWT>). - Sprawdzanie deklaracji i powiązania klucza: serwer strony ufającej analizuje token
<EVT>~<KB-JWT>, sprawdza oczekiwane deklaracje (email,email_verified,aud,nonce,iat, iexp) oraz weryfikuje podpis powiązania klucza z efemerycznym kluczem publicznym wcnf.jwk. - DNS i klucze publiczne: strona ufająca wysyła zapytanie do rekordu DNS TXT
_email-verification.<email-domain>, aby potwierdzić, że pasuje on do deklaracjiisstokena, a następnie pobiera metadane.well-known/email-verificationwystawcy i klucze publiczne zjwks_uri. - Weryfikacja tokena EVT i zakończenie: strona ufająca weryfikuje
EVTpodpis wystawcy za pomocą publicznego kluczaJWKS. Jeśli nie zostanie odebrany żaden token lub którykolwiek z etapów weryfikacji się nie powiedzie, witryna wraca do dotychczasowego procesu potwierdzania e-maila.
Gdy użytkownik po raz pierwszy zweryfikuje adres e-mail, Chrome wyświetli prośbę o uprawnienia (okno dialogowe na komputerze lub arkusz u dołu ekranu na Androidzie) przed wysłaniem prośby o token. Jeśli użytkownik przyzna uprawnienia, zostaną one zapamiętane dla danego adresu e-mail we wszystkich uczestniczących witrynach.
Ustawienia przeglądarki Chrome
Użytkownicy mogą zarządzać zweryfikowanymi adresami e-mail:
- Na komputerze: Ustawienia > Autouzupełnianie i hasła > Informacje kontaktowe > Zweryfikowany adres e-mail (lub otwórz
chrome://settings/contactInfo). - Na Androidzie: Ustawienia > Adresy i inne informacje > Zweryfikowany adres e-mail.
Użytkownicy mogą całkowicie wyłączyć tę funkcję lub zarządzać poszczególnymi zweryfikowanymi adresami e-mail.
Wskazówki dotyczące przypadków użycia
Potwierdzanie adresu e-mail to progresywne ulepszenie dotychczasowego procesu, które eliminuje konieczność opuszczania witryny przez użytkownika w celu pobrania hasła jednorazowego lub kliknięcia linku. Witryny mogą dodawać pola potwierdzania adresu e-mail do wszystkich odpowiednich formularzy, takich jak logowanie, rejestracja newslettera, tworzenie konta i odzyskiwanie hasła. Funkcja EVP jest uruchamiana tylko wtedy, gdy jest obsługiwana przez przeglądarkę. Jeśli po przesłaniu nie zostanie odebrany żaden kod lub którykolwiek z etapów weryfikacji się nie powiedzie, możesz wrócić do domyślnego procesu potwierdzania e-maila. Oznacza to również, że nie ma wykrywania funkcji interfejsu API. Witryna weryfikatora traktuje token EVT jako opcjonalny i przetwarza go, jeśli jest obecny w żądaniu.
Weryfikacja e-mail potwierdza, że użytkownik ma aktywną sesję u dostawcy swojego adresu e-mail. Nie potwierdza, że Twój e-mail dotarł do użytkownika. Możesz nadal wysyłać dotychczasowe e-maile powitalne lub wprowadzające oraz prosić użytkownika o sprawdzenie ustawień spamu.