Skip to content

Événements et hooks

Cette page décrit les événements runtime et les hooks Feathers utiles pour diagnostiquer une application nuxt-feathers-zod.

Événements d'authentification

useAuthRuntime() expose un historique d'événements de session. Les types actuellement utilisés couvrent :

ÉvénementSignification
ensure-startDébut de vérification de session.
ensure-finishFin de vérification de session.
session-syncSynchronisation générale de session.
sso-session-syncSynchronisation d'une session SSO.
feathers-session-syncSynchronisation d'une session Feathers.
authenticateAuthentification explicite.
reauth-skippedRestauration ignorée.
reauth-successRestauration réussie.
reauth-failureRestauration échouée.
logoutDéconnexion.
keycloak-client-sessionSession Keycloak détectée côté client.
keycloak-bridge-successBridge Keycloak vers Feathers réussi.
keycloak-bridge-fallbackFallback du bridge Keycloak.
keycloak-bearer-validatedBearer token validé.
keycloak-bearer-missingBearer token absent.
protected-page-readyPage protégée autorisée.
protected-page-blockedPage protégée bloquée.

Lecture des événements

ts
const auth = useAuthRuntime()
const snapshot = auth.getStateSnapshot()

console.log(snapshot.events)

Nettoyage diagnostic

ts
const auth = useAuthRuntime()
auth.clearEvents()
auth.resetDiagnostics()

Hooks Feathers

Les hooks Feathers restent le meilleur point d'entrée pour tracer les appels métier.

ts
export const traceHook = async (context, next) => {
  const startedAt = Date.now()

  try {
    await next()
    console.info('service:success', {
      path: context.path,
      method: context.method,
      duration: Date.now() - startedAt,
    })
  }
  catch (error) {
    console.error('service:error', {
      path: context.path,
      method: context.method,
      duration: Date.now() - startedAt,
      error,
    })
    throw error
  }
}

Recommandation

Pour une application métier, combiner :

  • les événements useAuthRuntime() pour la session ;
  • les hooks around, before, after, error pour les services ;
  • les logs serveur pour l'infrastructure ;
  • les stores ou composables métier pour l'UX.

Documentation du module nuxt-feathers-zod