| Termin | Definicja |
|---|---|
| brak mechanizmu double opt-in | Brak mechanizmu double opt-in to usterka procesowa pozbawiająca rejestrację dodatkowego potwierdzenia adresu przez odbiorcę. Na czym polega brak mechanizmu double opt-inBrak mechanizmu double opt-in oznacza, że system rejestruje adres e-mail na podstawie pojedynczego działania, najczęściej wpisania adresu w formularzu i wysłania żądania. Odbiorca nie otrzymuje wtedy wiadomości z odnośnikiem potwierdzającym, a aplikacja nie czeka na dodatkową akcję weryfikacyjną. W bazie może powstać rekord oznaczony jako aktywny mimo braku technicznego dowodu, że osoba kontrolująca skrzynkę rzeczywiście wykonała potwierdzenie. W poprawnie zaprojektowanym przepływie zgłoszenie formularza tworzy stan oczekujący, na przykład pending. System generuje jednorazowy token, zapisuje jego skrót lub wartość wraz z identyfikatorem rekordu i wysyła wiadomość zawierającą unikalny adres potwierdzający. Dopiero żądanie wykonane po kliknięciu tego odnośnika zmienia stan na aktywny. Double opt-in nie jest więc pojedynczym polem w formularzu, lecz sekwencją zdarzeń obejmującą zapis zgłoszenia, wysyłkę wiadomości, obsługę tokenu i zmianę statusu. Przepływ stanów, tokenów i potwierdzeńIstotnym elementem jest rozdzielenie adresu zgłoszonego od adresu potwierdzonego. Rekord oczekujący powinien mieć własny identyfikator procesu oraz token o odpowiedniej losowości, którego nie da się przewidzieć na podstawie adresu e-mail, numeru rekordu ani czasu utworzenia. Token powinien być jednorazowy i powiązany z konkretnym zgłoszeniem. Po prawidłowym użyciu należy go unieważnić albo oznaczyć jako wykorzystany, aby ponowne otwarcie tego samego odnośnika nie uruchamiało wielokrotnie operacji. Warto jawnie opisać wszystkie przejścia stanu. Przykładowy model obejmuje statusy pending, confirmed, expired i cancelled. Wysłanie formularza nie powinno od razu ustawiać statusu potwierdzonego. Żądanie potwierdzenia musi sprawdzić istnienie tokenu, jego zgodność z rekordem, ważność czasową oraz fakt, że nie został wcześniej użyty. Dopiero po przejściu tych kontroli aplikacja może zapisać datę potwierdzenia, usunąć aktywny token i zezwolić na dalsze operacje zależne od zweryfikowanego adresu. Skutki pominięcia drugiego krokuNajczęstszym skutkiem jest niespójność między interfejsem użytkownika a rzeczywistym stanem danych. Formularz może wyświetlić komunikat o zapisaniu adresu, podczas gdy system nie rozróżnia zgłoszenia oczekującego od potwierdzonego. W innym wariancie aplikacja zapisuje adres jako aktywny już przy pierwszym żądaniu, a późniejsza wiadomość ma jedynie charakter informacyjny. Taki mechanizm nie realizuje double opt-in, ponieważ kliknięcie odnośnika nie jest warunkiem aktywacji. Problem może być widoczny także w logach i zadaniach cyklicznych. Moduł wysyłający wiadomości może pobierać zarówno rekordy oczekujące, jak i aktywne, co prowadzi do ponownych wysyłek lub błędnego raportowania liczby potwierdzeń. Należy sprawdzić, czy ponowne zgłoszenie tego samego adresu aktualizuje istniejący rekord, tworzy nowy proces, czy omija etap oczekiwania. Trzeba również zweryfikować zachowanie po wygaśnięciu tokenu, po użyciu odnośnika w dwóch kartach przeglądarki, po ponownym wysłaniu wiadomości oraz po błędzie dostarczenia poczty. Każde z tych zdarzeń powinno pozostawiać jednoznaczny stan, a nie tylko ogólny komunikat sukcesu. Jak rozpoznać i uporządkować usterkę procesowąDiagnostykę należy rozpocząć od prześledzenia ścieżki od obsługi formularza do miejsca, w którym rekord otrzymuje status aktywny. W kodzie trzeba znaleźć warunek wykonujący zmianę statusu i ustalić, czy jest on wywoływany podczas pierwszego żądania, czy dopiero w kontrolerze obsługującym odnośnik potwierdzający. Następnie warto porównać schemat bazy danych z logiką aplikacji: nazwy statusów, wartości domyślne, możliwość wartości pustej dla daty potwierdzenia oraz ograniczenia uniemożliwiające zapis aktywnego rekordu bez potwierdzenia. Naprawa powinna obejmować nie tylko dodanie wiadomości e-mail. Potrzebne są osobne operacje utworzenia zgłoszenia, wygenerowania tokenu, wysłania lub ponowienia wysyłki oraz potwierdzenia. Testy powinny sprawdzać, że nowe zgłoszenie pozostaje oczekujące, prawidłowy token aktywuje tylko właściwy rekord, token wykorzystany drugi raz jest odrzucany, token nieaktualny nie działa, a błędny lub zmodyfikowany odnośnik nie zmienia danych. W przypadku problemu z komputerem używanym do obsługi formularza Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i podzespołów, obejmującą diagnostykę przyczyn utrudniających korzystanie z przeglądarki lub aplikacji pocztowej. |