**Motivations:** - Documenter le reste à faire (userwallet, service-login-verify, api-relay, website-skeleton) - Renforcer la validation côté api-relay et service-login-verify - Ajouter écrans diagnostic et sync service, service notifications relais, contrat par défaut **Root causes:** - N/A (évolutions + correctifs ciblés) **Correctifs:** - api-relay: GET /:hash (keys, messages, signatures) rejette hash vide → 400 - service-login-verify: validation structure preuve (challenge.hash, nonce, timestamp, signatures), reason invalid_proof_structure **Evolutions:** - RESTE_A_FAIRE.md: vue d’ensemble et tâches par projet - UserWallet: DiagnosticScreen, ServiceSyncScreen, relayNotificationService (hash events, fetch, decrypt, graph), defaultContract, loginStateMachine, useChannel, loginPublish, LoginScreen, LoginCollectShare - website-skeleton: README étendu **Pages affectées:** - RESTE_A_FAIRE.md - api-relay: keys, messages, signatures - service-login-verify: types, verifyLoginProof - userwallet: App, DiagnosticScreen, LoginCollectShare, LoginScreen, ServiceSyncScreen, useChannel, loginStateMachine, relayNotificationService, defaultContract, loginPublish - website-skeleton: README
UserWallet Login
Site de login avec authentification secp256k1, conçu pour être utilisé en iframe par Channel Messages.
Fonctionnalités
- Authentification basée sur des clés secp256k1
- Communication avec le parent via
postMessage - Gestion de l'activation/désactivation du login par service
- Interface responsive et accessible
Installation
npm install
Développement
npm run dev
Le site sera accessible sur http://localhost:3018
Build
npm run build
Architecture
- Authentification : Génération de paires de clés secp256k1, signature de challenges
- Communication iframe : Messages
postMessagepour l'intégration - Stockage : LocalStorage pour les clés et la configuration des services
- Interface : React + TypeScript avec accessibilité (ARIA)
Types de messages iframe
auth-request: Demande d'authentification depuis le parentauth-response: Réponse avec signatureservice-toggle: Activation/désactivation d'un serviceservice-status: Envoi du statut des services