Temps Réel

Webhooks

Recevez des notifications automatiques sur votre serveur dès qu'un événement survient sur vos utilisateurs.

Événement SDK

signUp / signIn

VaultSecure

Traitement & envoi

Votre Serveur

POST vers votre URL

Événements disponibles

user.created

Déclenché quand un utilisateur s'inscrit via le SDK.

user.login

Déclenché à chaque connexion réussie.

user.disabled

Déclenché quand un admin désactive un utilisateur.

user.enabled

Déclenché quand un admin réactive un utilisateur.

user.deleted

Déclenché quand un utilisateur est supprimé.

Structure du payload

// Payload envoyé par VaultSecure
{
  "event": "USER_CREATED",
  "timestamp": "2026-02-22T20:00:00",
  "data": {
    "email": "john@example.com",
    "firstName": "John",
    "lastName": "Doe"
  }
}

// Headers de la requête
{
  "Content-Type": "application/json",
  "X-Vault-Secret": "votre_secret_unique",
  "X-Vault-Event": "USER_CREATED"
}

Exemple Next.js

// app/api/webhooks/vault/route.ts
export async function POST(req: Request) {
  const secret = req.headers.get('x-vault-secret')

  if (secret !== process.env.VAULT_WEBHOOK_SECRET) {
    return Response.json({ error: 'Non autorisé' }, { status: 401 })
  }

  const body = await req.json()
  const { event, data } = body

  switch (event) {
    case 'USER_CREATED':
      await sendWelcomeEmail(data.email)
      break
    case 'USER_DELETED':
      await cleanupUserData(data.email)
      break
  }

  return Response.json({ received: true })
}

Exemple Node.js / Express

app.post('/webhooks/vault', (req, res) => {
  const secret = req.headers['x-vault-secret']

  // Vérifier que la requête vient bien de VaultSecure
  if (secret !== process.env.VAULT_WEBHOOK_SECRET) {
    return res.status(401).send('Non autorisé')
  }

  const { event, data, timestamp } = req.body

  if (event === 'USER_CREATED') {
    console.log('Nouvel utilisateur :', data.email)
    // Envoyer un email de bienvenue, créer un profil, etc.
  }

  if (event === 'USER_LOGIN') {
    console.log('Connexion de :', data.email)
  }

  if (event === 'USER_DELETED') {
    console.log('Utilisateur supprimé :', data.email)
    // Nettoyer les données de l'utilisateur
  }

  res.status(200).json({ received: true })
})

Tester en local avec ngrok

Exposez votre localhost pour recevoir les webhooks pendant le développement.

# Installer ngrok
npm install -g ngrok

# Exposer votre port local
ngrok http 3000

# Utiliser l'URL générée dans votre dashboard
# Ex: https://abc123.ngrok.io/api/webhooks/vault

Vérification du secret

Vérifiez toujours le header X-Vault-Secret dans chaque requête entrante. Ce secret est unique par webhook et disponible dans votre dashboard. Ne l'exposez jamais dans votre frontend.