Uwierzytelnianie za pomocą magicznego linku
Dowiedz się, jak wdrożyć magiczne linki do logowania bez hasła, rejestracji tylko na zaproszenie i zaproszeń dla członków organizacji za pomocą jednorazowych tokenów.
Dowiedz się, jak wdrożyć magiczne linki do logowania bez hasła, rejestracji tylko na zaproszenie i zaproszeń dla członków organizacji za pomocą jednorazowych tokenów.
Magiczny link to metoda uwierzytelniania bez hasła, w której użytkownik otrzymuje jednorazowy link do logowania za pośrednictwem e-maila (lub SMS-a). Kliknięcie linku loguje go bez konieczności podawania hasła.
Oto kilka kluczowych cech bezpieczeństwa magicznych linków:
Magiczny link składa się z:
Na przykład magiczny link może wyglądać tak:
Aby utworzyć magiczny link, musisz wygenerować jednorazowy token, bezpiecznie go wysłać do użytkownika, a następnie go zweryfikować, gdy użytkownik kliknie link.
Użyj Management API Logto, aby utworzyć jednorazowy token.
Przykładowe dane w ciele żądania:
Po uzyskaniu jednorazowego tokenu, możesz skonstruować magiczny link i wysłać go na adres e-mail końcowego użytkownika. Magiczny link powinien zawierać przynajmniej token i e-mail użytkownika jako parametry i kierować do strony docelowej w Twojej aplikacji. Na przykład https://twojaaplikacja.com/strona-docelowa.
Oto prosty przykład, jak może wyglądać magiczny link:
Uwaga:
Nazwy parametrów w magicznym linku mogą być całkowicie dostosowywane. Możesz dodać dodatkowe informacje do magicznego linku w oparciu o wymagania Twojej aplikacji oraz zakodować wszystkie parametry URL.
Po tym, jak końcowy użytkownik kliknie magiczny link i przejdzie do Twojej aplikacji, możesz wydobyć parametry token i email z URL, a następnie wywołać funkcję signIn() z Logto SDK, aby uruchomić przepływ uwierzytelniania.
Aby uzyskać więcej szczegółów, sprawdź Logto Docs - Magic Link (One-time Token).
Magiczne linki mogą zastąpić pierwszy krok uwierzytelniania, ale nie mogą pominąć Uwierzytelniania wieloskładnikowego (MFA).
W Logto, generując magiczny link z jednorazowym tokenem, nie musisz określać, czy jest to do logowania, czy rejestracji. Automatycznie określamy przepływ w zależności od statusu rejestracji e-maila:
Logto obsługuje następujące scenariusze z magicznymi linkami:
Obecnie nie obsługiwane:
Daj nam znać, jeśli potrzebujesz dalszej personalizacji.
Dla nowych produktów (np. narzędzi AI) w wewnętrznych testach lub dla narzędzi wewnętrznych możesz chcieć wyłączyć publiczną rejestrację i zezwolić tylko wybranym użytkownikom na dostęp do Twojej aplikacji. Aby to wdrożyć w Logto:
Przejdź do Konsola > Doświadczenie logowania > Logowanie i rejestracja > Opcje zaawansowane i wyłącz "Włącz rejestrację użytkownika", aby zamknąć publiczną rejestrację.

Zbierz adresy e-mail użytkowników, których chcesz zaprosić (np. za pośrednictwem swojej strony internetowej lub rekomendacji od istniejących użytkowników).
Utwórz i wyślij magiczny link zaproszenia, jak opisano powyżej (poproś o jednorazowy token, skomponuj magiczny link, uruchom uwierzytelnianie za pomocą Logto SDK).
Uwaga: Ustaw czas wygaśnięcia linku zaproszenia. Zaleca się, aby link był ważny przez co najmniej jeden dzień. Użyj następującego ciała żądania, aby wygenerować jednorazowy token:
Wyślij magiczny link na e-mail użytkownika (np. https://twojaaplikacja.com/strona-docelowa?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Dostosuj szablon e-mail, taki jak:

Kiedy użytkownicy klikną "Akceptuj zaproszenie", automatycznie zarejestrują się w Twojej usłudze, nawet przy wyłączonej publicznej rejestracji. Jest to określane jako "Zaproszenie ukierunkowane użytkownika".
Dla produktów wielodziedzinowych (np. aplikacji SaaS jak Slack, GitHub, Vercel), zapewnij płynny proces zaproszenia członków do zarządzania członkostwami organizacji. Użyj magicznych linków do zwiększenia konwersji w zaproszeniach członków.
Postępuj zgodnie z Dokumentacją Logto, aby wdrożyć tworzenie organizacji, kontrolę dostępu opartą na rolach organizacyjnych i zarządzanie organizacją: Logto Organizations.
Ustaw przepływ pracy "Zaproś członków" w swoim produkcie. Przykład:

Postępuj zgodnie z tym przewodnikiem, aby Zaproś Członków Organizacji. Uwagi: Zapraszając członków, upewnij się, że ładunek żądania zawiera:
context: jitOrganizationIds, aby określić, do której (których) organizacji użytkownik dołączy.expiresIn (np. 2 dni lub 1 tydzień), aby umożliwić użytkownikom wystarczająco dużo czasu na zaakceptowanie zaproszenia.Przykładowe dane żądania:
Wyślij link zaproszenia na adres e-mail użytkownika (np. https://twojaaplikacja.com/strona-docelowa?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Dostosuj swój szablon e-mail, na przykład:

Kiedy użytkownicy klikną "Akceptuj zaproszenie", automatycznie się zarejestrują lub zalogują i automatycznie dołączą do organizacji.
Co się stanie, jeśli użytkownik jest już zalogowany i kliknie inny magiczny link?
Aby prawidłowo obsłużyć konflikty kont, upewnij się, że:
login w "prośbie logowania": Nie ustawiaj prośby o logowanie, zawierając login w niej. Jeśli zostanie ustawiona nieprawidłowo, Logto automatycznie zaloguje konto powiązane z tokenem magicznego linku, omijając prośbę o zmianę konta.signIn(), określ parametr clearTokens: false, aby zapobiec usuwaniu istniejących tokenów. Jeśli ta opcja jest używana, upewnij się, że ręcznie usuniesz tokeny na stronie callback przy logowaniu.Po odpowiedniej konfiguracji, doświadczenie użytkownika będzie wyglądać następująco:

Kiedy użytkownicy klikną nieprawidłowy magiczny link, zostają przekierowani na stronę błędu z jasnym wyjaśnieniem problemu. Poniżej możliwe scenariusze błędów i ich wiadomości:
| Nazwa | Opis |
|---|---|
| token_not_found | Aktywny token nie znaleziony dla podanego e-maila i tokenu. |
| email_mismatch | Niezgodność e-maila z podanym tokenem. |
| token_expired | Token wygasł. |
| token_consumed | Token został użyty. |
| token_revoked | Token został unieważniony. |
| cannot_reactivate_token | Nie można ponownie aktywować tokenu. |
Każda strona błędu dostarczy konkretnej wiadomości, pomagając użytkownikom zrozumieć powód nieprawidłowego magicznego linku i wskazując, jakie kroki podjąć dalej. Na przykład:

Logto zapewnia bezpieczeństwo na poziomie przedsiębiorstwa dzięki elastycznym, bezhasłowym przepływom logowania za pomocą magicznych linków. To prosta, ale potężna metoda tworzenia płynnych doświadczeń użytkowników — niezależnie od tego, czy zapraszasz użytkowników do dołączenia do organizacji, pozwalasz im na łatwe tworzenie kont, czy zapewniasz bezproblemowe uwierzytelnianie. A ponieważ Logto radzi sobie z trudnymi sytuacjami takimi jak konflikty kont i wygasłe tokeny, Twoi użytkownicy otrzymują bezpieczny, pozbawiony frustracji proces za każdym razem.
Gotowy, aby unowocześnić swoje zarządzanie tożsamością z niezawodnym uwierzytelnianiem?