Bêta privéeMailbeam est en bêta privée : l'API publique n'est pas encore ouverte.Rejoindre la liste d'attente

Mailbeam
Auth0 ActionsIntermédiaire20 minutesMis à jour en janvier 2025

Vérification d'e-mails avec Auth0

Les Actions d'Auth0 sont des fonctions serverless qui s'exécutent pendant le pipeline d'authentification. Le déclencheur pre-user-registration tourne avant la création d'un nouvel utilisateur dans Auth0 : c'est l'endroit idéal pour vérifier une adresse avec Mailbeam.

Prérequis


Créer l'Action

Dans le tableau de bord Auth0 → Actions → Library, créez une Action pour le déclencheur Pre User Registration.

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

  // Ignore les connexions sociales (pas d'adresse fournie à ce stade)
  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) {
      // Erreur d'API — échec permissif
      console.log("[Mailbeam] réponse non-200, on laisse passer");
      return;
    }

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

    if (!valid || score < MIN_SCORE) {
      const message = reason === "disposable_domain"
        ? "Merci d'utiliser une adresse e-mail permanente."
        : "Merci de fournir une adresse e-mail valide et joignable.";

      api.access.deny("invalid_email", message);
    }
  } catch (err) {
    // Erreur réseau — échec permissif
    console.error("[Mailbeam] erreur de vérification :", err.message);
  }
};

Ajouter la clé d'API comme secret

Dans l'éditeur d'Action, allez dans Secrets et ajoutez :

NomValeur
MAILBEAM_KEYmb_live_xxxxxxxxxxxxxxxxxxxx

Déployer et brancher

  1. Cliquez sur Deploy dans l'éditeur d'Action
  2. Allez dans Actions → Flows → Pre User Registration
  3. Faites glisser votre Action dans le flux
  4. Cliquez sur Apply

Tester

// Testez depuis l'onglet Action Testing d'Auth0 avec :
{
  "user": {
    "email": "temp@mailinator.com"
  }
}
// Attendu : api.access.deny est appelé avec l'erreur "invalid_email"

Comment fonctionne api.access.deny

Quand api.access.deny est appelé, Auth0 renvoie une erreur au client :

{
  "error": "invalid_email",
  "error_description": "Merci d'utiliser une adresse e-mail permanente."
}

Votre front-end la reçoit dans le callback d'erreur d'Auth0 et peut l'afficher à l'utilisateur.

Bonnes pratiques

  • Échouez toujours en mode permissif (revenez sans appeler api.access.deny) en cas d'erreur d'API
  • Utilisez event.secrets pour la clé d'API — jamais de valeur en dur
  • Journalisez les erreurs avec console.error : elles apparaissent dans les logs du tenant Auth0

Prochaines étapes