# 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 build` dans `../service-login-verify` avant d’installer ou builder le skeleton. - **UserWallet** : à servir sur l’URL configurée (voir ci‑dessous) pour que l’iframe fonctionne. ## Installation ```bash cd website-skeleton npm install npm run build ``` ## Développement ```bash npm run dev ``` Ouvre par défaut sur `http://localhost:3024`. L’iframe pointe vers UserWallet (`USERWALLET_ORIGIN`). ## Configuration - **Origine UserWallet** : `src/config.ts` définit `USERWALLET_ORIGIN`. En dev, défaut `http://localhost:3018` (si UserWallet tourne en dev sur ce port). En prod, défaut `https://userwallet.certificator.4nkweb.com`. Pour override : variable d’environnement `VITE_USERWALLET_ORIGIN` (ex. `VITE_USERWALLET_ORIGIN=http://localhost:3018 npm run dev`). - **Validateurs** : `DEFAULT_VALIDATEURS` dans `src/config.ts` est 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 1. Lancer UserWallet (dev ou déployé) sur l’URL configurée. 2. Lancer le skeleton (`npm run dev` ou servir `dist/`). 3. Ouvrir la page du skeleton : l’iframe affiche UserWallet. 4. **Demander auth** : bouton « Demander auth (auth-request) » → envoi de `auth-request` à l’iframe. 5. **Login** : depuis l’iframe, effectuer le flux de login ; à la fin, UserWallet envoie `login-proof` au 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, écoute `message`, envoi `auth-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.sh` sur le backend, puis `./update-proxy-nginx.sh` pour proxy + certificat. Voir `docs/WEBSITE_SKELETON.md`. ## Références - `docs/WEBSITE_SKELETON.md` (documentation détaillée) - `features/service-login-verify.md` - `features/userwallet-contrat-login-reste-a-faire.md` (§ 3.7) - `userwallet/` (iframe) - `service-login-verify/` (vérification)