Wszystko, co warto wiedzieć, zanim zainstalujesz.
Szczegółowe spojrzenie na to, jak działa Logowanie bez hasła (Magic Link) PrestaShop 8 i 9, dlaczego zbudowaliśmy go w ten sposób i jaka myśl stoi za powyższymi funkcjami.
Po co zastępować hasło?
Według badań e-commerce od 30 do 40 procent koszyków porzuconych na etapie logowania odpada z powodu zapomnianego hasła. Każde żądanie resetu generuje e-mail, opóźnienie, czasem zgłoszenie do wsparcia. Magic link usuwa to tarcie: klient wpisuje e-mail, dostaje link, klika i jest zalogowany. Prościej dla niego, mniej wsparcia dla Ciebie i szybsza ścieżka zamówienia.
Jak działa moduł
Pod standardowym formularzem logowania drugi formularz proponuje logowanie przez e-mail. Klient wpisuje adres, żądanie AJAX generuje losowy token 256-bitowy, zapisuje w bazie wyłącznie jego hash SHA-256 i wysyła e-mail z surowym tokenem. Klient klika link w e-mailu, trafia na stronę potwierdzenia, zatwierdza jednym kliknięciem i zostaje uwierzytelniony w sesji PrestaShop jak przy klasycznym logowaniu. Natywne hooki uwierzytelniania są wyzwalane, więc wszystkie Twoje pozostałe moduły działają dalej normalnie.
Bezpieczeństwo zaprojektowane pod produkcję
Surowy token istnieje wyłącznie w wysłanym e-mailu. W bazie zapisany jest tylko hash SHA-256. Wyciek tabeli nie daje więc żadnego użytecznego linku. Każdy token jest jednorazowy i oznaczany jako zużyty w momencie użycia. Czas ważności jest konfigurowalny (domyślnie 15 minut, maksymalnie 24 godziny). Podwójny rate limiting kontroluje liczbę żądań per adres IP i per konto klienta w ruchomym oknie godzinnym, z konfigurowalnymi wartościami. Odpowiedź AJAX jest celowo ogólna, aby uniemożliwić atakującemu odróżnienie konta istniejącego od nieistniejącego.
Problem skanerów e-mail i jego rozwiązanie
Outlook z Safe Links, Gmail ze swoim podglądem, firmowe antywirusy i proxy bezpieczeństwa automatycznie odwiedzają każdy link w odebranych e-mailach, aby go przeskanować. Gdyby moduł zużywał token przy pierwszym GET, te skanery spalałyby link, zanim klient zdążyłby kliknąć. Moduł stosuje więc przepływ dwuetapowy: GET wyświetla samodzielną stronę potwierdzenia z przyciskiem, a token zużywa wyłącznie POST wywołany realnym kliknięciem. Skanery nie wysyłają dowolnych formularzy, więc nie mogą spalić linku. To wzorzec używany przez Slack, Notion, Vercel i Auth0 w ich magic linkach.
Uniwersalna strona potwierdzenia
Strona, na którą trafia klient po kliknięciu linku, jest renderowana jako samodzielny dokument HTML5, niezależny od motywu PrestaShop. Gwarantuje to perfekcyjne wyświetlanie na dowolnym motywie: Classic, Hummingbird, Warehouse, MySmartBook czy własnym. Strona pozostaje oszczędna, wyśrodkowana, z nazwą sklepu w nagłówku, spersonalizowanym tytułem powitalnym, niebieskim przyciskiem zatwierdzenia i notą o bezpieczeństwie. Żadnych zewnętrznych zależności CSS, żadnego ładowanego frameworka JavaScript, natychmiastowe renderowanie.
Automatyczna wielojęzyczność
Moduł dostarcza szablony e-mail HTML i tekstowe przetłumaczone na cztery języki: francuski, angielski, hiszpański i niemiecki. Język wysłanego e-maila automatycznie odpowiada językowi konta klienta. Teksty interfejsu (formularz zgłoszenia, strona potwierdzenia, komunikaty błędów) są również przetłumaczone przez standardowy system tłumaczeń PrestaShop, więc można je dostosować z poziomu back office.
Konfiguracja back office i statystyki
Strona konfiguracji dostępna z Menedżera modułów udostępnia wszystkie parametry: aktywację, wyświetlanie formularza na stronie logowania, czas ważności, progi rate limitingu, przekierowanie po zalogowaniu. Trzy liczniki w czasie rzeczywistym pokazują aktywne tokeny, logowania z ostatnich 24 godzin i wysłane linki. Przycisk pozwala ręcznie wyczyścić wygasłe tokeny. Zapis używa wzorca POST, potem redirect, potem GET, aby uniknąć fałszywych alarmów klasyfikatorów phishingu w rodzaju Google Safe Browsing.
Na razie nie ma opinii o produkcie.