Authentifizierung mit Magic Link
Lerne, Magic Links für passwortloses Einloggen, registrierungsbeschränkte Einladungen und Einladungen von Organisationsmitgliedern mit Einmal-Token zu implementieren.
Lerne, Magic Links für passwortloses Einloggen, registrierungsbeschränkte Einladungen und Einladungen von Organisationsmitgliedern mit Einmal-Token zu implementieren.
Ein Magic Link ist eine passwortlose Authentifizierungsmethode, bei der ein Benutzer eine einmalige Login-URL per E-Mail (oder SMS) erhält. Durch Klicken auf den Link wird er ohne Passwortanfrage eingeloggt.
Hier sind einige wichtige Sicherheitsmerkmale von Magic Links:
Ein Magic Link besteht aus:
Zum Beispiel könnte ein Magic Link so aussehen:
Um einen Magic Link zu erstellen, musst du ein Einweg-Token generieren, es sicher an den Benutzer senden und dann validieren, wenn der Benutzer auf den Link klickt.
Verwende die Logto Management API, um ein Einweg-Token zu erstellen.
Beispielanforderung mit Body-Payload:
Nachdem du das Einweg-Token erhalten hast, kannst du einen Magic Link erstellen und an die E-Mail-Adresse des Endbenutzers senden. Der Magic Link sollte zumindest das Token und die Benutzer-E-Mail als Parameter enthalten und zu einer Zielseite in deiner eigenen Anwendung navigieren. Beispiel: https://yourapp.com/landing-page.
Hier ist ein einfaches Beispiel, wie der Magic Link aussehen könnte:
Hinweis:
Die Parameternamen im Magic Link können vollständig angepasst werden. Du kannst zusätzliche Informationen zum Magic Link basierend auf den Anforderungen deiner Anwendung hinzufügen sowie alle URL-Parameter kodieren.
Nachdem der Endbenutzer auf den Magic Link geklickt und zu deiner Anwendung geleitet hat, kannst du die token- und email-Parameter aus der URL extrahieren und dann die signIn()-Funktion vom Logto SDK aufrufen, um den Authentifizierungsfluss auszulösen.
Für weitere Details prüfe die Logto-Dokumentation - Magic Link (Einweg-Token).
Magic Links können den ersten Authentifizierungsschritt ersetzen, aber nicht die Mehrfaktor-Authentifizierung (MFA) umgehen.
In Logto brauchst du bei der Erstellung eines Magic Links mit einem Einweg-Token nicht anzugeben, ob es sich um eine Anmeldung oder Registrierung handelt. Wir bestimmen den Fluss automatisch basierend auf dem Registrierungsstatus der E-Mail:
Logto unterstützt die folgenden Szenarien mit Magic Links:
Derzeit nicht unterstützt:
Lass uns wissen, wenn du weitere Anpassungen benötigst.
Für neue Produkte (z.B. KI-Tools) in der internen Erprobung oder für interne Tools möchtest du möglicherweise die öffentliche Registrierung deaktivieren und nur bestimmten Benutzern den Zugang zu deiner App gewähren. Um dies mit Logto zu implementieren:
Gehe zu Konsole > Anmeldeerlebnis > Anmeldung und Registrierung > Erweiterte Optionen und schalte "Benutzerregistrierung aktivieren" aus, um die öffentliche Registrierung zu schließen.

Sammle die E-Mail-Adressen der Benutzer, die du einladen möchtest (z.B. über deine Website oder Empfehlungen bestehender Benutzer).
Erstelle und sende den magischen Einladungslink wie oben beschrieben (fordern das Einweg-Token an, erstelle den Magic Link, löse die Authentifizierung über das Logto SDK aus).
Hinweis: Lege eine Ablaufzeit für den Einladungslink fest. Es ist empfohlen, den Link für mindestens einen Tag gültig zu machen. Verwende den folgenden Anfragekörper, um das Einweg-Token zu generieren:
Sende den Magic Link an die E-Mail des Benutzers (z.B. https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Passe die E-Mail-Vorlage an, wie zum Beispiel:

Wenn Benutzer „Einladung annehmen“ klicken, werden sie automatisch bei deinem Dienst registriert, selbst wenn die öffentliche Registrierung deaktiviert ist. Dies wird als „Gezielte Benutzereinladung“ bezeichnet.
Für Multi-Tenant-Produkte (z.B. SaaS-Apps wie Slack, GitHub, Vercel), biete einen nahtlosen Mitglieder-Einladungsprozess, um Organisationsmitgliedschaften zu verwalten. Verwende Magic Links für höhere Konversionen bei Mitgliedereinladungen.
Folge der Logto-Dokumentation, um die Organisationserstellung, rollenbasierte Zugriffskontrolle von Organisationen und Organisationsmanagement zu implementieren: Logto-Organisationen.
Richte den "Mitglieder einladen"-Workflow in deinem Produkt ein. Beispiel:

Folge dieser Anleitung zum Einladen von Organisationsmitgliedern. Hinweis: Beim Einladen von Mitgliedern sicherstellen, dass die Anfrage-Payload Folgendes umfasst:
context: jitOrganizationIds, um anzugeben, welcher Organisation(en) der Benutzer beitreten wird.expiresIn-Zeit (z.B. 2 Tage oder 1 Woche), um ausreichend Zeit für die Annahme der Einladung zu geben.Beispielanforderung-anfrage-Payload:
Sende den Einladungslink an die E-Mail des Benutzers (z.B. https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Passe deine E-Mail-Vorlage an, zum Beispiel:

Wenn Benutzer auf "Einladung annehmen" klicken, melden sie sich automatisch an oder registrieren sich und treten der Organisation bei.
Was passiert, wenn ein Benutzer bereits angemeldet ist und einen weiteren Magic Link anklickt?
Um Kontokonflikte korrekt zu handhaben, stelle Folgendes sicher:
login in der "Anmeldeaufforderung": Setze die Anmeldeaufforderung nicht so, dass login enthalten ist. Falls falsch eingestellt, wird Logto automatisch das dem Magic-Link-Token zugeordnete Konto anmelden, wodurch die Aufforderung zum Kontowechsel umgangen wird.signIn()-Funktion den clearTokens: false-Parameter angeben, um das Löschen bestehender Tokens zu verhindern. Wird diese Option verwendet, stelle sicher, dass du Tokens manuell löscht auf der Anmelderückrufseite.Nach der richtigen Konfiguration wird das Benutzererlebnis wie folgt sein:

Wenn Benutzer auf einen ungültigen Magic Link klicken, werden sie auf eine Fehlerseite mit einer klaren Erklärung des Problems umgeleitet. Unten sind die möglichen Fehlerszenarien und ihre Nachrichten aufgeführt:
| Name | Beschreibung |
|---|---|
| token_not_found | Aktives Token nicht gefunden mit angegebener E-Mail und Token. |
| email_mismatch | E-Mail stimmt nicht mit angegebenem Token überein. |
| token_expired | Token ist abgelaufen. |
| token_consumed | Token wurde bereits verwendet. |
| token_revoked | Token wurde widerrufen. |
| cannot_reactivate_token | Token kann nicht reaktiviert werden. |
Jede Fehlerseite wird eine spezifische Nachricht bereitstellen, um Benutzern das Verständnis des Grundes für den ungültigen Magic Link zu erleichtern und sie über die nächsten Schritte zu informieren. Zum Beispiel:

Logto bietet ein Sicherheitsniveau auf Unternehmensniveau durch flexible, passwortlose Anmeldeflüsse über Magic Links. Es ist eine einfache, aber leistungsstarke Möglichkeit, reibungslose Benutzererlebnisse zu schaffen - egal, ob du Benutzer einlädst, einer Organisation beizutreten, es ihnen ermöglichst, mühelos Konten zu erstellen, oder eine problemloses Authentifizierung bereitstellst. Und weil Logto schwierige Situationen wie Kontokonflikte und abgelaufene Tokens handhabt, erhalten deine Benutzer jedes Mal einen sicheren, frustfreien Prozess.
Bereit, dein IAM mit bombensicherer Authentifizierung zu modernisieren?