**Motivations:** - Consigner l'état actuel du dépôt (cron, service-login-verify, website-skeleton, userwallet, docs). - Centraliser les modifications en attente. **Root causes:** - N/A (commit groupé). **Correctifs:** - N/A. **Evolutions:** - Cron quotidien restart services : script local sans SSH, systemd (bitcoin-signet, bitcoin, APIs, dashboard, userwallet, website-skeleton) + Docker (mempool, bitcoin-signet-instance). - Feature cron-restart-services-local : documentation et règle scripts locaux / pas d'SSH. - service-login-verify : module vérification login (buildAllowedPubkeys, verifyLoginProof, nonceCache). - website-skeleton : app iframe UserWallet, config, systemd unit. - userwallet : collectSignatures, relay. - docs : DOMAINS_AND_PORTS, README, WEBSITE_SKELETON ; features userwallet-contrat-login, timeouts-backoff, service-login-verify. **Pages affectées:** - data/restart-services-cron.sh, data/restart-services.log, data/sync-utxos.log - features/cron-restart-services-local.md, features/service-login-verify.md, features/userwallet-contrat-login-reste-a-faire.md, features/userwallet-timeouts-backoff.md - docs/DOMAINS_AND_PORTS.md, docs/README.md, docs/WEBSITE_SKELETON.md - configure-nginx-proxy.sh - service-login-verify/ (src, dist, node_modules) - userwallet/src/utils/collectSignatures.ts, userwallet/src/utils/relay.ts - website-skeleton/
2.6 KiB
2.6 KiB
website-skeleton
Squelette d’un site qui intègre UserWallet en iframe : écoute des messages postMessage (auth-request, login-proof, error), vérification des preuves de login via service-login-verify, et affichage du statut (accepté / refusé).
Prérequis
- service-login-verify :
npm run builddans../service-login-verifyavant d’installer ou builder le skeleton. - UserWallet : à servir sur l’URL configurée (voir ci‑dessous) pour que l’iframe fonctionne.
Installation
cd website-skeleton
npm install
npm run build
Développement
npm run dev
Ouvre par défaut sur http://localhost:3024. L’iframe pointe vers UserWallet (USERWALLET_ORIGIN).
Configuration
- Origine UserWallet :
src/config.tsdéfinitUSERWALLET_ORIGIN. En dev, défauthttp://localhost:3018(si UserWallet tourne en dev sur ce port). En prod, défauthttps://userwallet.certificator.4nkweb.com. Pour override : variable d’environnementVITE_USERWALLET_ORIGIN(ex.VITE_USERWALLET_ORIGIN=http://localhost:3018 npm run dev). - Validateurs :
DEFAULT_VALIDATEURSdanssrc/config.tsest un placeholder. Remplacez‑le par les validateurs de l’action login de votre contrat (ou chargez‑les depuis votre API / contrat fourni par channel).
Utilisation
- Lancer UserWallet (dev ou déployé) sur l’URL configurée.
- Lancer le skeleton (
npm run devou servirdist/). - Ouvrir la page du skeleton : l’iframe affiche UserWallet.
- Demander auth : bouton « Demander auth (auth-request) » → envoi de
auth-requestà l’iframe. - Login : depuis l’iframe, effectuer le flux de login ; à la fin, UserWallet envoie
login-proofau parent. Le skeleton vérifie la preuve (verifyLoginProof) et affiche « Login accepté » ou « Login refusé : … ».
Structure
index.html: page avec iframe, zone de statut, bouton auth.src/main.ts: chargement de l’iframe, écoutemessage, envoiauth-request, appel àverifyLoginProof, mise à jour du statut.src/config.ts:USERWALLET_ORIGIN,DEFAULT_VALIDATEURS.
Déploiement
- Production :
https://skeleton.certificator.4nkweb.com(proxy → 192.168.1.105:3024). - Installation :
./install-website-skeleton.shsur le backend, puis./update-proxy-nginx.shpour proxy + certificat. Voirdocs/WEBSITE_SKELETON.md.
Références
docs/WEBSITE_SKELETON.md(documentation détaillée)features/service-login-verify.mdfeatures/userwallet-contrat-login-reste-a-faire.md(§ 3.7)userwallet/(iframe)service-login-verify/(vérification)