docv/docs/authentication.md

2.0 KiB
Raw Blame History

Authentification 4NK (iframe + MessageBus)

Cette application intègre un flux dauthentification 4NK encapsulé dans une iframe et orchestré côté client via MessageBus.

Composants impliqués

  • components/4nk/AuthModal.tsx: modal dauth 4NK, gère létat daffichage, le chargement, les erreurs et la progression
  • components/4nk/Iframe.tsx et lib/4nk/IframeReference.ts: gestion de liframe 4NK et de sa référence DOM
  • lib/4nk/MessageBus.ts: protocole de communication window.postMessage avec liframe
  • lib/4nk/UserStore.ts: stockage des tokens (sessionStorage) et pairingId utilisateur
  • lib/4nk/MockService.ts: implémentations simulées pour le mode démonstration

Protocole côté client

Séquence attendue côté UI lors dune authentification standard :

  1. Liframe se charge et envoie un message LISTENING
  2. Le client envoie REQUEST_LINK
  3. Réception LINK_ACCEPTED avec accessToken et refreshToken
  4. Le client envoie GET_PAIRING_ID pour récupérer lidentifiant dappairage

Le MessageBus fournit des méthodes utilitaires supplémentaires (validateToken, renewToken, getProcesses, etc.) utilisées par lespace /dashboard.

Mode démonstration (mock)

  • Sur /login, saisir lidentifiant dentreprise 1234 active le mode mock dans MessageBus
  • Les appels sont alors redirigés vers MockService (tokens et données factices), sans dépendre de liframe
  • Le dashboard affiche alors des statistiques et listes récentes simulées

Configuration

  • NEXT_PUBLIC_4NK_IFRAME_URL: origine de liframe (ex. https://dev.4nk.io)
  • Contrainte dorigine: MessageBus naccepte que les événements provenant dorigines 4NK/localhost

Comportements principaux

  • Stockage des tokens via UserStore.connect(accessToken, refreshToken)
  • Appairage: getUserPairingId() stocke lID côté UserStore
  • Vérification en dashboard: validateToken() côté 4NK (ou mock) et affichage conditionnel