Autenticazione tramite link magico
Impara a implementare link magici per l'accesso senza password, la registrazione su invito e gli inviti per i membri dell'organizzazione utilizzando token monouso.
Impara a implementare link magici per l'accesso senza password, la registrazione su invito e gli inviti per i membri dell'organizzazione utilizzando token monouso.
Un link magico è un metodo di autenticazione senza password in cui un utente riceve un URL di accesso monouso tramite email (o SMS). Cliccando sul link, l'utente accede senza richiedere una password.
Ecco alcune funzionalità di sicurezza chiave dei link magici:
Un link magico consiste in:
Ad esempio, un link magico potrebbe apparire così:
Per creare un link magico, devi generare un token monouso, inviarlo in modo sicuro all'utente e poi validarlo quando l'utente clicca sul link.
Utilizza Logto Management API per creare un token monouso.
Esempio di payload del corpo richiesta:
Dopo aver ottenuto il token monouso, puoi comporre un link magico e inviarlo all'indirizzo email dell'utente finale. Il link magico deve contenere almeno il token e l'email dell'utente come parametri e deve indirizzarsi a una pagina di atterraggio nella tua applicazione. Es. https://yourapp.com/landing-page.
Ecco un semplice esempio di come potrebbe apparire il link magico:
Nota:
I nomi dei parametri nel link magico possono essere completamente personalizzati. Puoi aggiungere ulteriori informazioni al link magico in base alle esigenze della tua applicazione, oltre a codificare tutti i parametri URL.
Dopo che l'utente finale ha cliccato sul link magico ed è arrivato alla tua applicazione, puoi estrarre i parametri token e email dall'URL, e poi chiamare la funzione signIn() dal Logto SDK per attivare il flusso di autenticazione.
Per ulteriori dettagli, consulta la Documentazione Logto - Link Magico (Token Monouso).
I link magici possono sostituire il primo passo dell'autenticazione, ma non possono bypassare la Multi-Factor Authentication (MFA).
In Logto, quando si genera un link magico con un token monouso, non è necessario specificare se è per l'accesso o per la registrazione. Determiniamo automaticamente il flusso in base allo stato di registrazione dell'email:
Logto supporta i seguenti scenari con i link magici:
Attualmente non supportato:
Facci sapere se hai bisogno di ulteriori personalizzazioni.
Per nuovi prodotti (es. strumenti AI) in test interno o per strumenti interni, potresti voler disabilitare la registrazione pubblica e consentire solo a utenti specifici di accedere alla tua app. Per implementare ciò con Logto:
Vai su Console > Esperienza di accesso > Accesso e registrazione > Opzioni avanzate e disattiva "Abilita registrazione utente" per chiudere la registrazione pubblica.

Raccogli gli indirizzi email degli utenti che desideri invitare (es. tramite il tuo sito web o consigli da parte di utenti esistenti).
Crea e invia il link di invito magico come descritto sopra (richiedi il token monouso, componi il link magico, attiva l'autenticazione tramite Logto SDK).
Nota: Imposta un tempo di scadenza per il link di invito. È consigliato rendere il link valido per almeno un giorno. Usa il seguente corpo richiesta per generare il token monouso:
Invia il link magico all'email dell'utente (es. https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalizza il modello di email, come ad esempio:

Quando gli utenti cliccano su "Accetta l'invito", si registreranno automaticamente al tuo servizio, anche con la registrazione pubblica disabilitata. Questo è definito "Invito mirato agli utenti".
Per prodotti multi-tenant (es. app SaaS come Slack, GitHub, Vercel), fornisci un processo di invito ai membri senza soluzione di continuità per gestire le adesioni all'organizzazione. Usa i link magici per tassi di conversione più alti negli inviti ai membri.
Segui i Documenti Logto per implementare la creazione di organizzazioni, il controllo degli accessi basato sui ruoli e la gestione delle organizzazioni: Logto Organizations.
Imposta il flusso "Invita membri" nel tuo prodotto. Esempio:

Segui questa guida per Invitare Membri dell'Organizzazione. Nota: Quando inviti i membri, assicurati che il payload della richiesta includa:
context: jitOrganizationIds per specificare a quale(i) organizzazione(i) l'utente si unirà.expiresIn (es. 2 giorni o 1 settimana) per consentire agli utenti di accettare l'invito.Esempio di payload della richiesta:
Invia il link di invito all'email dell'utente (es. https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalizza il tuo modello di email, ad esempio:

Quando gli utenti cliccano su "Accetta l'invito", verranno automaticamente autenticati o registrati e si uniranno automaticamente all'organizzazione.
Cosa succede se un utente è già connesso e clicca su un altro link magico?
Per gestire correttamente i conflitti di account, assicurati quanto segue:
login nel prompt di accesso: Non impostare il prompt di accesso includendo login. Se impostato in modo errato, Logto autenticherà automaticamente l'account associato al token del link magico, bypassando il prompt di cambio account.signIn(), specifica il parametro clearTokens: false per evitare di cancellare i token esistenti. Se si utilizza questa opzione, assicurati di cancellare manualmente i token nella pagina di callback di accesso.Dopo la corretta configurazione, l'esperienza utente sarà la seguente:

Quando gli utenti cliccano su un link magico non valido, verranno reindirizzati a una pagina di errore con una chiara spiegazione del problema. Di seguito sono riportati gli scenari di errore possibili e i loro messaggi:
| Nome | Descrizione |
|---|---|
| token_not_found | Token attivo non trovato con l'email e il token forniti. |
| email_mismatch | Discrepanza dell'email con il token fornito. |
| token_expired | Il token è scaduto. |
| token_consumed | Il token è stato consumato. |
| token_revoked | Il token è stato revocato. |
| cannot_reactivate_token | Impossibile riattivare il token. |
Ogni pagina di errore fornirà un messaggio specifico, aiutando gli utenti a capire la ragione dietro il link magico non valido e guidandoli nei passi successivi. Ad esempio:

Logto offre sicurezza a livello aziendale attraverso flussi di accesso senza password flessibili utilizzando link magici. È un modo semplice ma potente per creare esperienze utente fluide—che tu stia invitando utenti a unirsi a un'organizzazione, permettendo loro di creare account con facilità, o fornendo un'autenticazione senza problemi. E poiché Logto gestisce situazioni difficili come conflitti di account e token scaduti, i tuoi utenti ottengono un processo sicuro e privo di frustrazioni ogni volta.
Pronto a modernizzare il tuo IAM con un'autenticazione a prova di proiettile?