@mostajs/auth-ui
v0.4.0
Published
Vues d'authentification & d'inscription (HTML-string, zéro dépendance) : modale de connexion magic-link et mot de passe, formulaire d'inscription double opt-in, accusés, et le RENDU des écrans décrits par @mostajs/auth-lite/views (oubli, réinitialisation,
Maintainers
Readme
@mostajs/auth-ui
Auteur : Dr Hamid MADANI [email protected]
Vues d'authentification & d'inscription en HTML-string, zéro dépendance (membre de mosta-ui-html-stack), plus des gabarits d'email réutilisables entre applications. Vue pure : un view-model → du HTML ; toute la logique (magic-link, session, double opt-in) reste dans @mostajs/auth et le câblage de l'app.
Installation
"dependencies": { "@mostajs/auth-ui": "file:../mosta-auth-ui" }Aperçu
import { loginModal, registerForm, magicLinkEmailHtml } from '@mostajs/auth-ui';
// page de connexion
res.end(page({ body: loginModal({ state: 'form' }), theme: AUTH_CSS }));
// page d'inscription publique (double opt-in)
res.end(page({ body: registerForm({ sectors: ['IT', 'agritech'] }), theme: AUTH_CSS }));
// email envoyé par le transport (mailer) de l'app
await mailer.send({ to, subject: 'Connexion', html: magicLinkEmailHtml({ magicUrl, expiresAt, fromName: 'Hadhinat' }) });
// 0.3 — connexion par mot de passe : @mostajs/auth-lite DÉCRIT l'écran, auth-ui le REND
import { resetView } from '@mostajs/auth-lite/views';
res.end(page({ body: authView(resetView({ token })), theme: AUTH_CSS }));Le contrat.
authViewne connaît aucun nom de champ : il pose ceux du modèle. Une épreuve le confronte aux vrais modèles d'auth-lite, pour que l'écran et la route ne puissent pas diverger — la panne muetteidentifier/
Parcours d'inscription (double opt-in anti-bot)
- anonyme remplit
registerForm→ l'app crée un candidat + envoieregistrationVerifyEmailHtml→registrationSent. - clic sur l'email → l'app confirme l'adresse (aucune session ouverte) →
registrationConfirmed. - admin/manager accepte → l'app envoie
accountAcceptedEmailHtml→ le candidat se connecte (loginModal).
API
Voir llms.txt pour la liste complète des exports et leurs paramètres.
Tests
npm test # @mostajs/mjs-unit — 13 tests, dont l'épreuve de contrat avec @mostajs/auth-liteLicence
AGPL-3.0-or-later · © Dr Hamid MADANI
