Skip to Content

Magic Link (Email Passwordless)

I Magic Link consentono agli utenti di autenticarsi semplicemente cliccando su un link ricevuto via email — nessuna password richiesta. Questo approccio riduce l’attrito nel login, elimina i problemi legati alle password dimenticate e migliora la sicurezza escludendo la compromissione delle credenziali.


Come Funziona

  1. L’utente inserisce il proprio indirizzo email
  2. La tua app invia una richiesta ad Auris per generare un magic link
  3. Auris invia un’email all’utente con un link sicuro monouso
  4. L’utente clicca sul link (valido per un tempo configurabile, di default 15 minuti)
  5. Auris verifica il token e restituisce un access token e un ID token alla tua app
  6. L’utente è autenticato

Configurazione nella Console

Vai su Console → Impostazioni → Autenticazione → Metodi Passwordless e abilita Magic Link.

Configura l’URL di Redirect

Inserisci l’URL a cui Auris invierà l’utente dopo la verifica del magic link. Questo URL deve essere nella lista degli URL di redirect autorizzati dell’applicazione:

  • Sviluppo: http://localhost:3000/api/auth/callback
  • Produzione: https://tuaapp.com/api/auth/callback

Imposta la Scadenza del Token

Configura per quanto tempo un magic link rimane valido:

ImpostazioneDefaultIntervallo Consigliato
Scadenza Link15 minuti10–30 minuti

Configura il Comportamento di Registrazione Automatica

Scegli cosa succede quando qualcuno invia un’email sconosciuta:

ScenarioComportamento
Email conosciutaL’utente viene autenticato normalmente
Email sconosciuta + registrazione abilitataViene creato un nuovo account
Email sconosciuta + registrazione disabilitataViene restituito un errore
Email non verificataIl link funge anche da verifica dell’email

Implementazione

import { AurisClient } from '@auris/js' const auris = new AurisClient({ domain: 'auth.tuodominio.com', clientId: 'il-tuo-client-id', }) // Passo 1: Invia il magic link async function sendMagicLink(email) { const { error } = await auris.sendMagicLink({ email }) if (error) { console.error('Invio magic link fallito:', error.message) } else { console.log('Magic link inviato! Controlla la tua email.') } } // Passo 2: Gestisci il callback (quando l'utente clicca il link) // Chiama questo sulla pagina di callback async function handleMagicLinkCallback() { const { tokens, user, error } = await auris.handleMagicLinkCallback() if (error) { console.error('Verifica fallita:', error.message) return } console.log('Utente autenticato:', user) console.log('Access token:', tokens.accessToken) // Reindirizza alla dashboard window.location.href = '/dashboard' }

Endpoint API

POST/api/auth/magic-link/send

Invia un magic link all’indirizzo email specificato. Corpo richiesta: { "email": "[email protected]", "redirect_url": "https://tuaapp.com/callback" }.

POST/api/auth/magic-link/verify

Verifica un token magic link e restituisce i token di autenticazione. Corpo richiesta: { "token": "il-token-dal-link" }.


Template Email

Personalizza il template email del magic link su Console → Impostazioni → Template Email → Magic Link.

Variabili disponibili nel template:

VariabileDescrizione
{{magic_link}}L’URL completo del magic link (necessario)
{{user_email}}L’indirizzo email del destinatario
{{expires_in}}Tempo di scadenza (es. “15 minuti”)
{{tenant_name}}Il nome del tuo tenant
{{app_name}}Il nome della tua applicazione

Sicurezza

  • Token monouso: I magic link diventano non validi dopo il primo utilizzo. Non possono essere riutilizzati.
  • Hash dei token: I token vengono memorizzati come hash — Auris non memorizza mai il token grezzo. Anche in caso di violazione del database, i token non possono essere ricavati.
  • Rate limiting: Per impostazione predefinita, Auris limita a 5 richieste di magic link per email per ora per prevenire abusi. Vedi Rate Limiting.
  • Verifica del dominio email: Dopo il click sul magic link, l’indirizzo email dell’utente viene automaticamente marcato come verificato.
  • Sicurezza dell’email di destinazione: Il magic link viene inviato solo all’email fornita dall’utente — Auris non la espone nell’URL o nei log.

Istruisci gli utenti a non condividere mai il loro magic link. L’email dovrebbe indicare che il link è personale e monouso. Considera di aggiungere al template un avviso: “Se non hai richiesto questo link, ignoralo in sicurezza.”


Guide Correlate