Autentisering med magisk länk
Lär dig att implementera magiska länkar för lösenordsfri inloggning, registrering endast via inbjudan och inbjudningar till organisationsmedlemmar med hjälp av engångstoken.
Vad är en magisk länk?
En magisk länk är en lösenordsfri autentiseringsmetod där en användare får en engångsinloggnings-URL via e-post (eller SMS). Att klicka på länken loggar in dem utan att kräva ett lösenord.
Här är några viktiga säkerhetsfunktioner med magiska länkar:
- Engångstoken: När den klickats blir token ogiltig för att förhindra återanvändning.
- Länkens utgångstid: Den magiska länken bör ha en kort utgångstid (t.ex. 10 minuter) för ökad säkerhet.
- Begränsning av begärningar: Förhindra missbruk genom att begränsa hur många magiska länkar som kan skickas inom en viss tidsram.
- Enhets-/webbläsarbindning (Valfritt): Begränsa länkens användning till den ursprungliga enheten eller IP:n för att förhindra avlyssning.
Sammansättning av en magisk länk
En magisk länk består av:
- URL-rutten: Pekar på landningssidan för din app.
- Engångstoken: En unik och engångsanvändnings-token som används för lösenordsfri autentisering.
- Användarens e-post: Används för att validera tokenens äkthet och användarens identitet.
- Ytterligare parametrar: Valfritt, beroende på ditt apps behov.
Till exempel kan en magisk länk se ut så här:
För att skapa en magisk länk behöver du generera en engångstoken, skicka den säkert till användaren och sedan validera den när användaren klickar på länken.
Arbetsflöde för en magisk länk
- Användaren begär en magisk länk: Användaren anger sin e-post på din app.
- Generering av engångstoken: Servern genererar en token och skickar den som en länk via e-post.
- Användaren klickar på länken: Användaren klickar på länken i e-posten.
- Tokenvalidering: Servern kontrollerar om token är giltig.
- Användaren är autentiserad: Om token är giltig loggas användaren in.
Hur implementerar man magiska länkar med Logto?
Steg 1: Begär engångstoken
Använd Logto Management API för att skapa en engångstoken.
Exempel på begäran av kroppens payload:
Steg 2: Sätt ihop din magiska länk
Efter att du erhållit engångstoken kan du komponera en magisk länk och skicka den till slutanvändarens e-postadress. Den magiska länken bör åtminstone innehålla token och användarens e-post som parametrar, och ska navigera till en landningssida i din egen applikation. T.ex. https://yourapp.com/landing-page
.
Här är ett enkelt exempel på hur den magiska länken kan se ut:
Observera:
Parameternamnen i den magiska länken kan anpassas fullt ut. Du kan lägga till ytterligare information till den magiska länken baserat på ditt apps krav och även koda alla URL-parametrar.
Steg 3: Utlös autentiseringsflödet via Logto SDK
Efter att slutanvändaren har klickat på den magiska länken och navigerat till din applikation kan du extrahera token
och email
parametrar från URL:en, och sedan anropa signIn()
funktionen från Logto SDK för att utlösa autentiseringsflödet.
För mer detaljer, kontrollera Logto Docs - Magisk Länk (Engångstoken).
Användningsfall för magisk länk
Magiska länkar kan ersätta det första steg i autentisering, men kan inte kringgå multifaktorautentisering (MFA).
I Logto, när du generar en magisk länk med en engångstoken, behöver du inte specificera om det är för inloggning eller registrering. Vi bestämmer automatiskt flödet baserat på e-postens registreringsstatus:
- Oregistrerad e-post: Klicka på den magiska länken omdirigerar användare till kontoskapandeflödet, hoppar över e-postinmatning och verifiering. Användarna fortsätter att sätta ett lösenord, lägga till profiluppgifter (t.ex. fullt namn) eller ställa in MFA, baserat på dina registreringsinställningar.
- Registrerad e-post: Klicka på den magiska länken kringgår första stegets verifiering (t.ex. "e-post + lösenord" eller "e-post + verifieringskod"). Användaren loggas antingen in direkt eller uppmanas att slutföra MFA, baserat på dina inloggningsinställningar.
Logto stöder följande scenarier med magiska länkar:
- Registrering endast via inbjudan: För interna verktyg eller AI-produkter i testfasen, kan du inaktivera offentlig registrering och bjuda in specifika användare via en magisk länk.
- Inbjudan till organisationsmedlem: För SaaS-produkter, använd magiska länkar för att bjuda in nya medlemmar till en organisation, vilket gör medlemskapsprocessen enklare.
- Inloggning / Registrering: Skicka en magisk länk för inloggning eller registrering via e-post.
För närvarande inte stöds:
- Återställning av lösenord med magisk länk.
- Användning av telefonnummer eller användarnamn som identifierare.
Låt oss veta om du behöver ytterligare anpassning.
Registrering endast via inbjudan med magisk länk
För nya produkter (t.ex. AI-verktyg) i intern testning eller för interna verktyg, kan du vilja inaktivera offentlig registrering och endast tillåta specifika användare att få åtkomst till din app. För att implementera detta med Logto:
-
Gå till Console > Användarupplevelse för inloggning > Inloggning och registrering > Avancerade alternativ, och slå av "Aktivera användarregistrering" för att stänga offentlig registrering.
-
Samla in e-postadresserna till de användare du vill bjuda in (t.ex. via din webbplats eller rekommendationer från befintliga användare).
-
Skapa och skicka den magiska inbjudningslänken som beskrivs ovan (begär engångstoken, sätt ihop den magiska länken, utlös autentisering via Logto SDK).
Observera: Ställ in en utgångstid för inbjudningslänken. Det rekommenderas att göra länken giltig i minst en dag. Använd följande begärans kropp för att generera engångstoken:
-
Skicka den magiska länken till användarens e-post (t.ex.
https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]
). Anpassa e-postmallen, som till exempel:När användare klickar "Acceptera inbjudan", kommer de automatiskt registrera sig för din tjänst, även med offentlig registrering inaktiverad. Detta kallas "Inbjudan till sticker användare".
Inbjudan till organisationsmedlem med magisk länk
För fleranvändingsprodukter (t.ex. SaaS-appar som Slack, GitHub, Vercel), tillhandahåll en sömlös medlemsinbjudningsprocess för att hantera organisationsmedlemskap. Använd magiska länkar för högre konverteringsgrad i medlemsinbjudningar.
-
Följ Logto-dokumenten för att implementera organisationsskapande, organisationsrollbaserad åtkomstkontroll och organisationshantering: Logto Organisationer.
-
Ställ in arbetsflödet för "Bjud in medlemmar" i din produkt. Exempel:
-
Följ denna guide för att Bjuda in organisationsmedlemmar. Observera: När du bjuder in medlemmar, se till att begärans payload inkluderar:
context: jitOrganizationIds
för att specificera vilken/vilka organisation(er) användaren kommer att ansluta sig till.- Ställ in en längre
expiresIn
tid (t.ex. 2 dagar eller 1 vecka) för att ge tillräckligt med tid för användarna att acceptera inbjudan.
Exempel på begärans payload:
-
Skicka inbjudningslänken till användarens e-post (t.ex.
https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]
). Anpassa din e-postmall, till exempel:När användare klickar "Acceptera inbjudan", kommer de automatiskt loggas in eller registrera sig och automatiskt ansluta sig till organisationen.
Hantera kontokonflikter
Vad händer om en användare redan är inloggad och klickar på en annan magisk länk?
För att hantera kontokonflikter korrekt bör du säkerställa följande:
- Undvik att lägga till
login
i "inloggningsprompten": Ange inte inloggningsprompten inklusivelogin
i den. Om den ställs in felaktigt kommer Logto automatiskt logga in det konto som är associerat med den magiska länkens token, och förbi kontobytarprompten. - Behåll befintliga tokens: N är du anropar funktionen
signIn()
, specificera parameternclearTokens: false
för att förhindra radering av befintliga tokens. Om detta alternativ används, se till att du manuellt rensar tokens på sign-in-sidan för återkoppling.
Efter rätt konfiguration, kommer användarupplevelsen att vara som följer:
- Magisk länk för det aktuella kontot: Om användaren redan är inloggad och klickar på en magisk länk för samma konto, kommer Logto verifiera engångstoken och ansluta användaren till specifika organisationer om det behövs.
- Magisk länk för ett annat konto: Om användaren är inloggad och klickar på en magisk länk för ett annat konto, kommer Logto att uppmana användaren att antingen:
- Fortsätta som det nya kontot: Logto byter till det nya kontot efter tokenverifiering.
- Stanna kvar på det aktuella kontot: Logto hoppar över tokenverifiering och återvänder användaren till det aktuella kontot.
Hantera fellänksidor för ogiltig magisk länk
När användare klickar på en ogiltig magisk länk, kommer de att omdirigeras till en fellänksida med en tydlig förklaring av problemet. Nedan finns de möjliga fellänkscenarierna och deras meddelanden:
Namn | Beskrivning |
---|---|
token_not_found | Aktiv token hittades inte med den angivna e-posten och tokenen. |
email_mismatch | E-post mismatch med given token. |
token_expired | Tokenen har löpt ut. |
token_consumed | Tokenen har förbrukats. |
token_revoked | Tokenen har återkallats. |
cannot_reactivate_token | Kan inte återaktivera tokenen. |
Varje fellänksida kommer att tillhandahålla ett specifikt meddelande, som hjälper användare att förstå orsaken bakom den ogiltiga magiska länken och guida dem om nästa steg. Till exempel:
Slutsats
Logto levererar säkerhet på företagsnivå genom flexibla, lösenordsfria inloggningsflöden med hjälp av magiska länkar. Det är ett enkelt men kraftfullt sätt att skapa smidiga användarupplevelser – oavsett om du bjuder in användare att gå med i en organisation, låter dem skapa konton utan svårighet, eller tillhandahålla problemfri autentisering. Och eftersom Logto hanterar knepiga situationer som kontokonflikter och utgångna tokens, får dina användare en säker, frustreringsfri process varje gång.
Redo att modernisera din IAM med vattentät autentisering?