Email Verification API to propozycja, która umożliwia przeglądarce bezpośrednią komunikację z dostawcą poczty e-mail w celu sprawdzenia, czy użytkownik jest właścicielem adresu e-mail. Użytkownicy wpisują adres e-mail i przesyłają formularz, a witryna weryfikuje podpisany token weryfikacyjny adresu e-mail z przeglądarki u dostawcy bez wysyłania e-maila ani przerywania procesu użytkownika.
Podczas zbierania adresów 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 adresem. Obecne metody weryfikacji wymagają od użytkowników opuszczenia witryny, przełączenia aplikacji w celu sprawdzenia skrzynki odbiorczej, skopiowania kodu OTP lub kliknięcia linku weryfikacyjnego. To zakłócenie zwiększa liczbę porzuceń i sesji zarówno w przypadku użytkowników, jak i automatycznych agentów. Użytkownicy często napotykają problemy z dotychczasowymi metodami weryfikacji, takie jak opóźnione e-maile, wygasłe linki lub nierozpoznane kody.
Potwierdzanie adresu e-mail działa jako progresywne ulepszanie dotychczasowego procesu:
- Brak przerw: weryfikacja odbywa się w tle, gdy użytkownik wypełnia formularz.
- Nie jest wymagane wykrywanie funkcji: witryny dodają do formularzy pole do wpisywania adresu e-mail i ukryte pole do wpisywania tokena. Jeśli przeglądarka lub dostawca nie obsługuje weryfikacji adresu e-mail albo weryfikacja się nie powiedzie, witryna wraca do domyślnego procesu potwierdzania adresu e-mail.
- Minimalizowanie ryzyka phishingu: nie ma kodu do skopiowania ani możliwości przekierowania użytkownika do fałszywej witryny.
Przydatne linki
- Interfejs Email Verification API na GitHubie
- Protokół weryfikacji adresu e-mail na GitHubie
- Weryfikacja adresu e-mail na stronie Stan platformy Chrome
- Rejestracja w programie testów origin Email Verification
Możesz przetestować automatyzację w wersji demonstracyjnej:
- Wersja demonstracyjna wydawcy: zawiera przykładowe konto e-mail i sesję po zalogowaniu.
- Wersja demonstracyjna weryfikatora: potwierdź adres e-mail z wersji demonstracyjnej lub adres e-mail dowolnego uczestniczącego dostawcy.
Wskazówki dotyczące testowania origin
Wersje próbne origin to eksperymenty, które mają na celu zbieranie opinii, więc Twoje zdanie jest bardzo ważne, jeśli uczestniczysz w nich jako strona ufająca lub dostawca tożsamości. Aby zgłosić problemy, skorzystaj z tych repozytoriów GitHub:
- Browser Email Verification API: WICG/email-verification
- Protokół weryfikacji adresu e-mail: dickhardt/email-verification
Jeśli w implementacji Chrome napotkasz błędy, zgłoś problem w tym komponencie:
Funkcją testowania origin możesz sterować w przypadku każdej odpowiedzi, dołączając token testowania origin. Dzięki temu możesz ograniczyć dostęp do tej funkcji do określonego segmentu użytkowników, np. do grupy testowej A/B. Jeśli masz grupę beta-testerów lub użytkowników, którzy mają wcześniejszy dostęp do funkcji, możesz ją włączyć dla nich. W takim przypadku przed wydaniem lub zweryfikowaniem tokena sprawdź, czy podany adres e-mail jest prawidłowy.
Wersje próbne origin mają też limity ruchu, aby zminimalizować liczbę witryn korzystających z funkcji przed jej wprowadzeniem. Interfejs API wydawcy jest w trakcie opracowywania, więc wraz z aktualizacjami interfejsu Chrome mogą pojawiać się zmiany, które nie są wstecznie kompatybilne.
Więcej informacji o postępach prac znajdziesz na tym blogu oraz na liście adresowej evp-announce@chromium.org.
Proces potwierdzania adresu e-mail
W kolejnych sekcjach wyjaśniamy najważniejsze pojęcia i kroki protokołu podczas korzystania z interfejsu Email Verification API.
Kluczowe terminy
Najważniejsze terminy związane z interfejsem Email Verification API to:
- Weryfikator: witryna, która zbiera adres e-mail i chce go zweryfikować. Weryfikator jest też nazywany stroną zależną.
- Dostawca poczty e-mail: usługa, która udostępnia adres e-mail użytkownika, np.
gmail.com. - Wystawca: usługa, która zarządza kontem e-mail użytkownika, np.
accounts.google.com. Wydawca jest też nazywany dostawcą tożsamości.
W niektórych przypadkach dostawca poczty e-mail i wydawca działają w tej samej domenie.
Warto jednak je odróżniać, ponieważ interfejs Email Verification API używa aktywnej sesji w przeglądarce z dostawcą tożsamości jako metody weryfikacji. Aby na przykład zweryfikować example@gmail.com, użytkownik musi być zalogowany na google.com na tym koncie w tej samej przeglądarce.
Przebieg protokołu
- Wyświetlanie formularza: podmiot ufający wyświetla formularz HTML zawierający element
<input type="email">i ukryte pole wejściowe oznaczone elementemautocomplete="email-verification-token"oraz unikalny elementnoncedla każdej instancji. - Wpisanie adresu e-mail: gdy użytkownik wpisze adres e-mail – wybierając sugestię autouzupełniania lub 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>, aby wykryć autoryzowane źródło wystawcy dostawcy, 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 przerywa weryfikację bez wyświetlania monitu dla użytkownika. - Wydawanie tokena: przeglądarka wykrywa
issuance_endpointdostawcy na podstawie.well-known/email-verification, tworzy tymczasową parę kluczy i wysyła żądanie HTTPPOSTza pomocą podpisów wiadomości HTTP (RFC 9421) z plikami cookie sesji własnej witryny wydawcy i docelowym adresem e-mail, aby otrzymać podpisany token weryfikacji adresu e-mail (EVT). - Powiązanie klucza i przesyłanie: przeglądarka wiąże podpisany
EVTz pochodzeniem strony ufającej i formularzemnoncew ramach tokena JWT powiązania klucza (KB-JWT). Gdy użytkownik prześle formularz, Chrome wypełni ukryte pole wejściowe połączonym tokenem (<EVT>~<KB-JWT>) i wyświetli małe powiadomienie informujące użytkownika, że dostawca poczty e-mail zweryfikował jego adres. - Weryfikacja roszczeń i bazy wiedzy: serwer strony ufającej analizuje token
<EVT>~<KB-JWT>, weryfikuje oczekiwane roszczenia (email,email_verified,aud,nonce,iatiexp) oraz sprawdza sygnaturę powiązania klucza z przejściowym kluczem publicznym wcnf.jwk. - DNS i klucze publiczne: strona ufająca wysyła zapytanie do
_email-verification.<email-domain>rekordu DNS TXT, aby potwierdzić, że pasuje on do roszczeniaisstokena, a następnie pobiera metadane.well-known/email-verificationi klucze publiczne wystawcy zjwks_uri. - Weryfikacja EVT i jej ukończenie: podmiot ufający weryfikuje
EVTpodpis wystawcy za pomocą klucza publicznego dostawcyJWKS. Jeśli nie otrzymasz tokena lub którykolwiek etap weryfikacji się nie powiedzie, witryna wróci do dotychczasowego procesu potwierdzania adresu e-mail.
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 to uprawnienie zostanie przyznane, będzie zapamiętywane dla każdego adresu e-mail w przypadku uczestniczących witryn.
Ustawienia przeglądarki Chrome
Użytkownicy mogą zarządzać zweryfikowanymi adresami e-mail:
- Na komputerze otwórz Ustawienia > Autouzupełnianie i hasła > Informacje kontaktowe > Zweryfikowany adres e-mail (lub otwórz
chrome://settings/contactInfo). - Na Androidzie otwórz 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.
Kwestie dotyczące przypadków użycia
Potwierdzanie adresu e-mail to progresywne ulepszanie istniejącego 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 w newsletterze, tworzenie konta i odzyskiwanie hasła. EVP jest wywoływany tylko wtedy, gdy przeglądarka go obsługuje. Jeśli po przesłaniu nie otrzymasz kodu lub którykolwiek z etapów weryfikacji się nie powiedzie, możesz wrócić do domyślnego procesu potwierdzania adresu e-mail. Oznacza to również, że nie ma wykrywania funkcji interfejsu API. Witryna weryfikująca traktuje EVT jako opcjonalny i przetwarza go, jeśli jest obecny w żądaniu.
Potwierdzanie adresu e-mail potwierdza, że użytkownik ma aktywną sesję u dostawcy adresu e-mail. Nie potwierdza on, że e-mail dotarł do użytkownika. Możesz nadal wysyłać istniejące e-maile powitalne lub wprowadzające i możesz chcieć lub musieć poprosić użytkownika o sprawdzenie ustawień spamu.