2.0 KiB
2.0 KiB
Authentification 4NK (iframe + MessageBus)
Cette application intègre un flux d’authentification 4NK encapsulé dans une iframe et orchestré côté client via MessageBus.
Composants impliqués
components/4nk/AuthModal.tsx: modal d’auth 4NK, gère l’état d’affichage, le chargement, les erreurs et la progressioncomponents/4nk/Iframe.tsxetlib/4nk/IframeReference.ts: gestion de l’iframe4NK et de sa référence DOMlib/4nk/MessageBus.ts: protocole de communicationwindow.postMessageavec l’iframelib/4nk/UserStore.ts: stockage des tokens (sessionStorage) et pairingId utilisateurlib/4nk/MockService.ts: implémentations simulées pour le mode démonstration
Protocole côté client
Séquence attendue côté UI lors d’une authentification standard :
- L’
iframese charge et envoie un messageLISTENING - Le client envoie
REQUEST_LINK - Réception
LINK_ACCEPTEDavecaccessTokenetrefreshToken - Le client envoie
GET_PAIRING_IDpour récupérer l’identifiant d’appairage
Le MessageBus fournit des méthodes utilitaires supplémentaires (validateToken, renewToken, getProcesses, etc.) utilisées par l’espace /dashboard.
Mode démonstration (mock)
- Sur
/login, saisir l’identifiant d’entreprise1234active le mode mock dansMessageBus - Les appels sont alors redirigés vers
MockService(tokens et données factices), sans dépendre de l’iframe - Le dashboard affiche alors des statistiques et listes récentes simulées
Configuration
NEXT_PUBLIC_4NK_IFRAME_URL: origine de l’iframe (ex.https://dev.4nk.io)- Contrainte d’origine:
MessageBusn’accepte que les événements provenant d’origines 4NK/localhost
Comportements principaux
- Stockage des tokens via
UserStore.connect(accessToken, refreshToken) - Appairage:
getUserPairingId()stocke l’ID côtéUserStore - Vérification en dashboard:
validateToken()côté 4NK (ou mock) et affichage conditionnel