Microservice d'authentification et de gestion des utilisateurs pour AlfyChat.
Ce service gère l'ensemble du cycle de vie des utilisateurs : inscription, connexion, vérification email, double authentification (2FA/TOTP), gestion des préférences, conformité RGPD, badges, statut personnalisé et clés de chiffrement E2EE.
| Catégorie | Technologies |
|---|---|
| Runtime | Bun |
| Langage | TypeScript |
| API | Express |
| Auth | JWT (access + refresh), bcryptjs |
| 2FA | otplib (TOTP) |
| Nodemailer | |
| Cache | Redis |
| Base de données | MySQL 8 |
Frontend (:4000) → Gateway (:3000) → Microservices
├── users (:3001) ← ce service
├── messages (:3002)
├── friends (:3003)
├── calls (:3004)
├── servers (:3005)
├── bots (:3006)
└── media (:3007)
- Bun ≥ 1.2
- MySQL 8
- Redis 7
PORT=3001
DB_HOST=localhost
DB_PORT=3306
DB_USER=alfychat
DB_PASSWORD=
DB_NAME=alfychat_users
REDIS_URL=redis://localhost:6379
JWT_SECRET=
JWT_REFRESH_SECRET=
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASS=
SERVICE_REGISTRY_URL=http://gateway:3000bun installbun run devbun run build
bun run startdocker compose up userssrc/
├── index.ts # Point d'entrée
├── controllers/ # Auth, profil, 2FA, badges, préférences, changelog
├── routes/ # Définition des routes Express
├── services/ # AuthService, EmailService, TwoFactorService
├── middleware/ # Auth JWT, rate limiting
├── types/ # Types TypeScript
└── utils/ # Utilitaires (RGPD, clés E2EE)
Voir CONTRIBUTING.md.