• Magiczny link
  • Bezhasłowy
  • Uwierzytelnianie
  • Zaproszenie

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.

Ran
Ran
Product & Design

Przestań tracić tygodnie na uwierzytelnianie użytkowników
Uruchamiaj bezpieczne aplikacje szybciej z Logto. Zintegruj uwierzytelnianie użytkowników w kilka minut i skup się na swoim głównym produkcie.
Rozpocznij
Product screenshot

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:

  • Token jednorazowego użytku: Po kliknięciu token staje się nieważny, aby zapobiec ponownemu użyciu.
  • Wygaśnięcie linku: Magiczny link powinien mieć krótki czas wygaśnięcia (np. 10 minut) dla zwiększenia bezpieczeństwa.
  • Limitowanie tempa: Zapobiegaj nadużyciom, ograniczając liczbę wysyłanych magicznych linków w określonym przedziale czasowym.
  • Powiązanie z urządzeniem/przeglądarką (Opcjonalne): Ogranicz użycie linku do oryginalnego urządzenia lub adresu IP, aby zapobiec przechwyceniu.

Skład magicznego linku

Magiczny link składa się z:

  • Trasa URL: Wskazuje stronę docelową dla Twojej aplikacji.
  • Token jednorazowy: Unikalny token używany jednorazowo do uwierzytelniania bez hasła.
  • E-mail użytkownika: Używany do weryfikacji autentyczności tokena i tożsamości użytkownika.
  • Dodatkowe parametry: Opcjonalnie, w zależności od potrzeb Twojej aplikacji.

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.

Przebieg pracy z magicznym linkiem

  1. Użytkownik prosi o magiczny link: Użytkownik wpisuje swój e-mail w Twojej aplikacji.
  2. Generowanie tokenu jednorazowego: Serwer generuje token i wysyła go jako link poprzez e-mail.
  3. Użytkownik klika link: Użytkownik klika link w e-mailu.
  4. Weryfikacja tokenu: Serwer sprawdza, czy token jest ważny.
  5. Użytkownik jest uwierzytelniony: Jeśli token jest ważny, użytkownik jest zalogowany.

Jak zaimplementować magiczne linki z Logto?

Krok 1: Prośba o jednorazowy token

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.

Krok 3: Wywołaj przepływ uwierzytelniania za pomocą Logto SDK

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).

Przypadki użycia magicznych linków

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:

  • Niezarejestrowany e-mail: Kliknięcie magicznego linku przekierowuje użytkowników do procesu tworzenia konta, pomijając wpisywanie i weryfikację e-maila. Użytkownicy przechodzą do ustawienia hasła, dodania profilu (np. pełnego imienia i nazwiska) lub skonfigurowania MFA, w zależności od ustawień rejestracji.
  • Zarejestrowany e-mail: Kliknięcie magicznego linku przekrocza pierwszy etap weryfikacji (np. „e-mail + hasło” lub „e-mail + kod weryfikacyjny”). Użytkownik jest albo od razu zalogowany, albo proszony o ukończenie MFA, w zależności od ustawień logowania.

Logto obsługuje następujące scenariusze z magicznymi linkami:

  1. Rejestracja tylko na zaproszenie: Dla narzędzi wewnętrznych lub produktów AI w fazie testowania możesz wyłączyć publiczną rejestrację i zaprosić konkretnych użytkowników za pomocą magicznego linku.
  2. Zaproszenie członków organizacji: Dla produktów SaaS, użyj magicznych linków do zapraszania nowych członków do organizacji, ułatwiając proces członkostwa.
  3. Logowanie/Rejestracja: Wyślij magiczny link do logowania lub rejestracji za pomocą e-maila.

Obecnie nie obsługiwane:

Daj nam znać, jeśli potrzebujesz dalszej personalizacji.

Rejestracja tylko na zaproszenie z magicznym linkiem

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:

  1. Przejdź do Konsola > Doświadczenie logowania > Logowanie i rejestracja > Opcje zaawansowane i wyłącz "Włącz rejestrację użytkownika", aby zamknąć publiczną rejestrację.

    logto_disable_public_registration.png

  2. 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).

  3. 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:

  4. 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:

    email_templates_invitation_only_registration.png

    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".

Zaproszenie członków organizacji z magicznym linkiem

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.

  1. Postępuj zgodnie z Dokumentacją Logto, aby wdrożyć tworzenie organizacji, kontrolę dostępu opartą na rolach organizacyjnych i zarządzanie organizacją: Logto Organizations.

  2. Ustaw przepływ pracy "Zaproś członków" w swoim produkcie. Przykład:

    invite_organization_member_in_app.png

  3. 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.
    • Ustaw dłuższy czas expiresIn (np. 2 dni lub 1 tydzień), aby umożliwić użytkownikom wystarczająco dużo czasu na zaakceptowanie zaproszenia.

    Przykładowe dane żądania:

  4. 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:

    email_templates_join_organization.png

    Kiedy użytkownicy klikną "Akceptuj zaproszenie", automatycznie się zarejestrują lub zalogują i automatycznie dołączą do organizacji.

Obsługa konfliktów kont

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:

  • Unikaj dodawania 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.
  • Zachowaj istniejące tokeny: Wywołując funkcję 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:

  1. Magiczny link dla bieżącego konta: Jeśli użytkownik jest już zalogowany i kliknie magiczny link dla tego samego konta, Logto zweryfikuje jednorazowy token i przypisze użytkownika do określonych organizacji, jeśli to konieczne.
  2. Magiczny link dla innego konta: Jeśli użytkownik jest zalogowany i kliknie magiczny link dla innego konta, Logto poprosi użytkownika o:
    • Kontynuację jako nowe konto: Logto przełącza się na nowe konto po weryfikacji tokenu.
    • Pozostanie przy bieżącym koncie: Logto pomija weryfikację tokenu i zwraca użytkownika do bieżącego konta.
    magic_link_account_conflicts.png

Obsługa stron z błędami dla unieważnionego magicznego linku

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:

NazwaOpis
token_not_foundAktywny token nie znaleziony dla podanego e-maila i tokenu.
email_mismatchNiezgodność e-maila z podanym tokenem.
token_expiredToken wygasł.
token_consumedToken został użyty.
token_revokedToken został unieważniony.
cannot_reactivate_tokenNie 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:

magic_link_error_pages.png

Podsumowanie

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?