Ajoute FRONTEND_URL, absent des trois environnements alors que le callback
OAuth et la liste d'origines CORS en dépendent : sans lui le backend
retombait sur localhost:5173 et refusait le front déployé.
Les identifiants Google et Facebook passent par substitution depuis
l'environnement du pipeline, afin de ne pas committer de secret.
Ignore aussi test-results/, généré par le reporter jest-junit ajouté par la
chaîne CI.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Intègre la chaîne CI/CD et la dockerisation venues de main.
Conflits sur backend/package-lock.json et frontend/package-lock.json :
résolus en régénérant les deux lockfiles depuis les package.json fusionnés,
qui réunissent les dépendances des deux branches (helmet, express-rate-limit,
passport, passport-google-oauth20 côté Emmanuel ; jest-junit côté main).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ajoute l'authentification Google en complément de la connexion par mot de
passe. Le callback OAuth émet le même JWT que la connexion classique, donc
le middleware d'authentification et ProtectedRoute restent inchangés.
Backend
- stratégie passport-google-oauth20 dans src/config/passport.js
- routes GET /api/auth/google et /google/callback, documentées dans Swagger
- un compte existant avec le même email est rattaché automatiquement au
compte Google, et son email passe vérifié
- les routes répondent 503 si les identifiants ne sont pas configurés,
plutôt que de faire échouer le démarrage du serveur
- login et changePassword ne comparent plus un hash inexistant sur les
comptes sans mot de passe
Base de données
- password devient nullable
- colonnes provider, providerId et avatarUrl, index unique sur le couple
provider/providerId
Frontend
- page /auth/callback qui récupère le token et redirige selon le rôle
- boutons Google de Connexion et Inscription branchés
- boutons Facebook désactivés en attendant les identifiants Meta
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- helmet et express-rate-limit sur les routes d'authentification
- CORS restreint aux origines de FRONTEND_URL
- CSP désactivée uniquement sur /api-docs pour Swagger UI
- ajout du test de tirage et simplification du test e2e
- suppression de tests/setup.js devenu inutile
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Inscription : checkbox obligatoire avec liens mentions légales et confidentialité
- Script createAdmin.js pour créer le compte administrateur en base
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Header : menu hamburger animé pour mobile, nav cachée sur petit écran
- Footer : grid 2 colonnes sur mobile, 4 colonnes sur desktop
- Accueil : titres et paddings adaptés mobile/tablette/desktop
- ReglesJeu : titres, cartes et CTA responsives
- MentionsLegales / Confidentialite : paddings et titres adaptés mobile
- Contact : padding et formulaire adaptés mobile
- Admin : tableau avec scroll horizontal sur mobile
- Employe : formulaire de recherche en colonne sur mobile
- Ajout composants Layout, Header, Footer et logo depuis branche Alexis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>