Klikasz "Kontynuuj z Google", wybierasz konto, i następną rzeczą, którą powinieneś zobaczyć, jest ToRun. To, co widziało wiele osób zamiast tego, to strona proszona o potwierdzenie e-maila — ten sam adres, który Google właśnie zweryfikował w ich imieniu, trzydzieści sekund wcześniej.
Znaleźliśmy to, licząc. Od czasu, gdy weszła w życie zasada wymagająca potwierdzonego adresu do logowania, ponad jedna czwarta kont założonych przez Google nigdy się nie zalogowała: żadnej sesji, nigdy, ani razu. Zakładali konto i odbijali się od ściany.
Dlaczego tak się stało
Używany przez nas framework potwierdza adres automatycznie tylko na jednej gałęzi: przepływie, w którym ktoś wpisuje kod weryfikacyjny podczas rejestracji. Ta gałąź jest u nas wyłączona, ponieważ rejestracja społecznościowa nie ma gdzie wpisać kodu. Więc każde ukończenie przez Google lub Apple tworzyło niepotwierdzone konto, wysyłało link potwierdzający na skrzynkę, za którą dostawca właśnie poręczył, i przekierowywało do strony potwierdzenia, nie logując nikogo.
Nic nie zawodziło. Żaden błąd nie był rejestrowany. Strona wyglądała nawet na coś rozsądnego, co można komuś pokazać.
Istniało zabezpieczenie dokładnie na tę sytuację, dodane tygodnie wcześniej, i nigdy się nie uruchomiło — bo żyje na stronie logowania, a oba przyciski Google idą zupełnie inną drogą.
Rodzi się potwierdzone
Konto założone przez Google lub Apple zaczyna się teraz potwierdzone, o ile zarejestrowany adres jest naprawdę tym, który dostawca faktycznie zadeklarował. Jeśli dostawca wyraźnie mówi, że nie zweryfikował adresu, to zaufanie jest wstrzymane i działa stary przepływ. Jeśli potwierdzenie z jakiegokolwiek powodu się nie powiedzie, stary przepływ też działa, i link jest wysyłany.
E-mail potwierdzający, który framework by uruchomił, jest odpowiadany ciszą zamiast wysłany, więc nikt nie dostaje e-maila proszącego o potwierdzenie czegoś, co już jest potwierdzone.
Sam adres jest teraz tylko do odczytu na stronie ukończenia, z linijką w 29 językach wyjaśniającą, że dostawca go zweryfikował. A na telefonie przejście z rejestracji do ekranu weryfikacji resetuje stos, więc gest cofnięcia ląduje na ekranie logowania zamiast na pół wypełnionym formularzu z nadal edytowalną nazwą użytkownika i adresem.
Nikogo nie trzeba naprawiać
Konta uwięzione za starą ścianą nie potrzebują migracji. Następne dotknięcie "Kontynuuj z Google" je potwierdza — to prawda od poprzedniej poprawki, i to cała ścieżka odzyskiwania.
Kontrola, która powinna to złapać — ta, która czyta ścieżki logowania i potwierdza zachowanie każdej — pozostawała zielona przez cztery tygodnie, gdy to było zepsute, ponieważ każdy hak, który obserwuje, żyje na stronie, której ten przepływ nigdy nie dotyka. Ma teraz dwanaście nowych kontroli na stronach, których faktycznie dotyka.