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
- L’utente inserisce il proprio indirizzo email
- La tua app invia una richiesta ad Auris per generare un magic link
- Auris invia un’email all’utente con un link sicuro monouso
- L’utente clicca sul link (valido per un tempo configurabile, di default 15 minuti)
- Auris verifica il token e restituisce un access token e un ID token alla tua app
- L’utente è autenticato
Configurazione nella Console
Abilita Magic Link
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:
| Impostazione | Default | Intervallo Consigliato |
|---|---|---|
| Scadenza Link | 15 minuti | 10–30 minuti |
Configura il Comportamento di Registrazione Automatica
Scegli cosa succede quando qualcuno invia un’email sconosciuta:
| Scenario | Comportamento |
|---|---|
| Email conosciuta | L’utente viene autenticato normalmente |
| Email sconosciuta + registrazione abilitata | Viene creato un nuovo account |
| Email sconosciuta + registrazione disabilitata | Viene restituito un errore |
| Email non verificata | Il link funge anche da verifica dell’email |
Implementazione
JavaScript
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
/api/auth/magic-link/sendInvia un magic link all’indirizzo email specificato. Corpo richiesta: { "email": "[email protected]", "redirect_url": "https://tuaapp.com/callback" }.
/api/auth/magic-link/verifyVerifica 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:
| Variabile | Descrizione |
|---|---|
{{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
- Login Ospitato (PKCE) — Autenticazione standard con password
- SMS OTP — Autenticazione passwordless via codice SMS
- Passkey / WebAuthn — Autenticazione biometrica
- Template Email — Personalizza tutti i template email di Auris
- Rate Limiting — Configura i limiti per gli endpoint di autenticazione