• Joined on 2026-08-12

@synvectis/auth (0.2.1)

Published 2026-09-06 22:14:33 +02:00 by neigel

Installation

@synvectis:registry=
npm install @synvectis/auth@0.2.1
"@synvectis/auth": "0.2.1"

About this package

@synvectis/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é

parseUser — quand la route me n'a pas la forme attendue

⚠ LES SIX SURFACES EN ONT QUATRE FORMES : { user } chez Nexus et les deux consoles, un objet plat chez Flux, { utilisateur, organisation } chez Index. Le défaut couvre les trois premières ; forcer la quatrième à changer une API déjà consommée par plusieurs écrans, pour satisfaire un paquet de façade, serait mettre la charrue avant les bœufs.

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 fournisseurs et liens.
  • 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
@mui/icons-material ^7
@mui/material ^7
@synvectis/theme *
axios ^1.13.6
react >=18
react-dom >=18
zustand >=4
Details
npm
2026-09-06 22:14:33 +02:00
161
latest
15 KiB
Assets (1)
Versions (3) View all
0.2.1 2026-09-06
0.2.0 2026-09-06
0.1.1 2026-09-06