@mostajs/auth-flow-qr
v0.1.0
Published
Connexion par appairage QR (option B, type « WhatsApp Web ») : un appareil anonyme affiche un QR + poll ; un appareil déjà connecté l'approuve → session. Store d'appairage pending/approved/consume (one-time). Membre de mosta-auth-stack. Pilotable .env.
Maintainers
Readme
@mostajs/auth-flow-qr
Auteur : Dr Hamid MADANI [email protected]
Connexion par appairage QR — option B, type « WhatsApp Web » :
- Un appareil anonyme (page de login) appelle
start()→ affiche un QR du lien d'approbation et interroge (poll) le statut. - Un appareil déjà connecté scanne le QR → ouvre la page d'approbation →
approve(id, email). - Le
pollde l'anonyme passe àapproved→ ilconsume(id)(one-time) → l'hôte ouvre la session poursubject.
Store d'appairage en mémoire (pending → approved → consume), pur (node:crypto). L'hôte branche le rendu QR (@mostajs/qrpanel) et la résolution du sujet (@mostajs/auth) — composition (DEVRULES §10). Membre de mosta-auth-stack.
import { createAuthFlowQr } from '@mostajs/auth-flow-qr';
const flow = createAuthFlowQr({ ttl: 120 });
const { id } = flow.start(); // QR → /login/pair/approve?id=${id}
// téléphone connecté : flow.approve(id, session.email)
// desktop poll : flow.poll(id).status === 'approved' → flow.consume(id).subject → sessionAPI : llms.txt. Tests : npm test (4). AGPL-3.0-or-later.
