ncantu 497bcf0819 Add real service contract for website-skeleton and improve iframe styling
**Motivations:**
- website-skeleton needs a real service contract with valid UUIDs and validators
- Service wallet required for production use with configurable public key
- Iframe styling needs improvement to remove scrollbars and match UserWallet theme

**Root causes:**
- DEFAULT_VALIDATEURS used placeholder public key that cannot verify signatures
- No service wallet generation script for production deployment
- Iframe had fixed height causing scrollbars and visual mismatch with dark theme

**Correctifs:**
- Created real service contract in src/serviceContract.ts with dedicated UUIDs (skeleton-service-uuid-4nkweb-2026)
- Added service wallet generation script (generate-service-wallet.mjs) with .env and .env.private files
- Improved iframe container styling: increased height (800px), dark background (#1a1a1a), better shadows, hidden scrollbars
- Added .env.private to .gitignore for security

**Evolutions:**
- Service contract automatically loaded on startup and sent to UserWallet iframe
- Public key configurable via VITE_SKELETON_SERVICE_PUBLIC_KEY environment variable
- Added npm script 'generate-wallet' for easy wallet generation
- Enhanced iframe visual integration with UserWallet dark theme

**Pages affectées:**
- website-skeleton/src/serviceContract.ts (new)
- website-skeleton/src/config.ts
- website-skeleton/src/main.ts
- website-skeleton/generate-service-wallet.mjs (new)
- website-skeleton/index.html
- website-skeleton/package.json
- website-skeleton/.gitignore
- website-skeleton/.env (new)
- website-skeleton/.env.private (new)
2026-01-28 17:28:50 +01:00
..

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 postMessage pour 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 parent
  • auth-response : Réponse avec signature
  • service-toggle : Activation/désactivation d'un service
  • service-status : Envoi du statut des services