Beta privataMailbeam è in beta privata: l'API pubblica non è ancora aperta.Iscriviti alla lista d'attesa

Mailbeam
Auth0 ActionsIntermedio20 minutiAggiornato a gennaio 2025

Verifica delle email con Auth0

Le Actions di Auth0 sono funzioni serverless che girano durante la catena di autenticazione. Il trigger pre-user-registration viene eseguito prima che venga creato un nuovo utente in Auth0, il che ne fa il punto perfetto per verificare gli indirizzi email con Mailbeam.

Prerequisiti


Crea la Action

Nel pannello di Auth0 → Actions → Library, crea una nuova Action per il trigger Pre User Registration.

// Action di Auth0: pre-user-registration
exports.onExecutePreUserRegistration = async (event, api) => {
  const email = event.user.email;

  // Saltala negli accessi social (in questa fase non c'è un indirizzo email)
  if (!email) return;

  const MAILBEAM_KEY = event.secrets.MAILBEAM_KEY;
  const MIN_SCORE = 60;

  try {
    const response = await fetch("https://api.mailbeam.dev/v1/verify", {
      method: "POST",
      headers: {
        Authorization: `Bearer ${MAILBEAM_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ email }),
    });

    if (!response.ok) {
      // Errore dell'API: lascia passare
      console.log("[Mailbeam] l'API non ha restituito 200, lascio passare");
      return;
    }

    const { valid, score, reason } = await response.json();

    if (!valid || score < MIN_SCORE) {
      const message = reason === "disposable_domain"
        ? "Usa un indirizzo email permanente."
        : "Inserisci un indirizzo email valido e raggiungibile.";

      api.access.deny("invalid_email", message);
    }
  } catch (err) {
    // Errore di rete: lascia passare
    console.error("[Mailbeam] errore di verifica:", err.message);
  }
};

Aggiungi la chiave API come segreto

Nell'editor della Action, vai su Secrets e aggiungi:

NomeValore
MAILBEAM_KEYmb_live_xxxxxxxxxxxxxxxxxxxx

Pubblica e aggancia

  1. Premi Deploy nell'editor della Action
  2. Vai su Actions → Flows → Pre User Registration
  3. Trascina la tua nuova Action nel flusso
  4. Premi Apply

Prova

// Provala dalla scheda di testing delle Actions di Auth0 con:
{
  "user": {
    "email": "temp@mailinator.com"
  }
}
// Atteso: viene chiamata api.access.deny con l'errore "invalid_email"

Come funziona api.access.deny

Quando viene chiamata api.access.deny, Auth0 restituisce un errore al client:

{
  "error": "invalid_email",
  "error_description": "Usa un indirizzo email permanente."
}

Il tuo frontend lo riceve dentro il callback di errore di Auth0 e può mostrarlo alla persona.

Buone pratiche

  • In caso di errore dell'API lascia sempre passare (torna senza chiamare api.access.deny)
  • Usa event.secrets per la chiave API: non scriverla mai nel codice
  • Registra gli errori con console.error: compaiono nei registri del tenant di Auth0

Prossimi passi