@emergence/auth (0.1.0)
Installation
@emergence:registry=npm install @emergence/auth@0.1.0"@emergence/auth": "0.1.0"About this package
@emergence/auth
L'identification des applications Synvectis — appels, session, second facteur et écran de connexion — en un seul endroit.
Pourquoi ce paquet existe
Avant lui, lib/tokenStorage.ts était identique octet pour octet dans trois
dépôts (Platform/admin, nexus/frontend, nexus/admin-portal), et
lib/authStore.ts existait en trois versions divergentes — 229, 143 et 99
lignes. Chacune avait gagné une amélioration que les autres n'ont jamais reçue :
| seule à l'avoir | |
|---|---|
| Second facteur | console de la Plateforme |
| Protection contre la redirection ouverte | nexus/frontend |
| Message distinct quand l'identité est indisponible | console de la Plateforme |
Le paquet réunit les trois. ⚠ Aucune des copies n'avait tout.
Ce qu'il contient
session.ts |
où ranger le jeton — stockage injectable |
client.ts |
les appels — routes en paramètres |
store.ts |
l'état, par creerAuth(config) |
EcranConnexion.tsx |
l'écran, celui de Nexus, paramétré |
Se brancher
export const useAuth = creerAuth({
routes: { login: '/api/auth/login', logout: '/api/auth/logout', me: '/api/auth/me' },
apres: (compte) => (compte.roles.includes('admin') ? '/console' : '/accueil'),
})
<EcranConnexion auth={useAuth} nomApplication="Flux" degrade={DEGRADE_FLUX} />
Les trois coutures, et pourquoi elles existent
⚠ stockage — localStorage dans un navigateur, safeStorage dans
Electron. Sans elle, le paquet serait resté réservé au web, donc n'aurait
homogénéisé que trois surfaces sur quatre.
⚠ routes — Nexus expose /api/users/login, Flux /api/auth/login. Les
figer aurait exclu une application sur deux.
⚠ naviguer — une fenêtre Electron n'a pas d'URL où se rendre.
Ce qu'il ne fait pas
- La création de compte, la vérification d'adresse, les fournisseurs tiers.
Ce sont des parcours propres à chaque produit ; l'écran les accueille par ses
emplacements
fournisseursetliens. - Garder l'écran de Zitadel à jour. C'est ici qu'on l'adoptera le jour venu : un seul endroit à changer, au lieu de quatre.
Dependencies
Peer Dependencies
| ID | Version |
|---|---|
| @emergence/theme | * |
| @mui/icons-material | ^7 |
| @mui/material | ^7 |
| react | >=18 |
| react-dom | >=18 |
| zustand | >=4 |