Complete family planning application with: - React frontend with TypeScript - Node.js/Express backend with TypeScript - Python ingestion service for document processing - Planning ingestion service with LLM integration - Shared UI components and type definitions - OAuth integration for calendar synchronization - Comprehensive documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
5.4 KiB
5.4 KiB
Configuration OAuth pour Google Calendar et Outlook
⚠️ IMPORTANT - Sécurité
AVANT DE COMMENCER : Révoquez immédiatement la clé OpenAI exposée dans le fichier .env :
- Allez sur https://platform.openai.com/api-keys
- Révéquez la clé commençant par
sk-proj-efaTQ8cicJYU7k8RG... - Créez une nouvelle clé
- Remplacez-la dans le fichier
.env
Configuration Google Calendar OAuth
1. Créer un projet Google Cloud
- Allez sur Google Cloud Console
- Créez un nouveau projet ou sélectionnez un projet existant
- Nommez-le "Family Planner" (ou autre nom)
2. Activer l'API Google Calendar
- Dans le menu, allez dans APIs & Services > Library
- Cherchez "Google Calendar API"
- Cliquez sur Enable
3. Créer les identifiants OAuth
- Allez dans APIs & Services > Credentials
- Cliquez sur Create Credentials > OAuth client ID
- Si demandé, configurez l'écran de consentement OAuth :
- Type d'application : External
- Nom de l'application :
Family Planner - Email de support : votre email
- Scopes : ajoutez
https://www.googleapis.com/auth/calendar.readonlyethttps://www.googleapis.com/auth/calendar.events - Domaines autorisés :
localhost - Sauvegardez
- Créez l'OAuth client ID :
- Type d'application : Web application
- Nom :
Family Planner Web - URIs de redirection autorisés :
http://localhost:5000/api/calendar/oauth/callbackhttp://localhost:5174/calendar/oauth/callback(pour le frontend)
- Cliquez sur Create
- Copiez le Client ID et le Client Secret
4. Configurer le .env
Ouvrez backend/.env et remplacez :
GOOGLE_CLIENT_ID=votre_client_id_ici
GOOGLE_CLIENT_SECRET=votre_client_secret_ici
Configuration Microsoft Outlook OAuth
1. Créer une application Azure AD
- Allez sur Azure Portal
- Recherchez Azure Active Directory
- Allez dans App registrations > New registration
- Nommez l'application :
Family Planner - Type de compte : Accounts in any organizational directory and personal Microsoft accounts
- URI de redirection :
- Type : Web
- URI :
http://localhost:5000/api/calendar/oauth/callback
- Cliquez sur Register
2. Configurer les permissions
- Dans votre application, allez dans API permissions
- Cliquez sur Add a permission > Microsoft Graph
- Sélectionnez Delegated permissions
- Ajoutez :
Calendars.ReadCalendars.ReadWriteoffline_access
- Cliquez sur Add permissions
3. Créer un client secret
- Allez dans Certificates & secrets
- Cliquez sur New client secret
- Description :
Family Planner Secret - Expiration : 24 mois (ou selon votre préférence)
- Cliquez sur Add
- Copiez immédiatement la valeur (vous ne pourrez plus la voir)
4. Récupérer le Client ID
- Retournez à Overview
- Copiez l'Application (client) ID
5. Configurer le .env
Ouvrez backend/.env et remplacez :
OUTLOOK_CLIENT_ID=votre_application_client_id_ici
OUTLOOK_CLIENT_SECRET=votre_client_secret_ici
Vérification de la configuration
Après avoir configuré les deux providers :
-
Redémarrez le backend :
cd backend npm run dev -
Vérifiez les logs pour vous assurer qu'il n'y a pas d'erreur
-
Testez la connexion OAuth :
- Ouvrez l'application frontend
- Allez dans les paramètres du calendrier
- Cliquez sur "Continuer avec Google" ou "Continuer avec Outlook"
- Vous devriez être redirigé vers la page de consentement OAuth
Résolution des problèmes courants
Erreur "redirect_uri_mismatch"
- Vérifiez que l'URI de redirection dans votre console Google/Azure correspond exactement à celle dans le
.env - N'oubliez pas le protocole
http://et le port:5000
Erreur "invalid_client"
- Vérifiez que le Client ID et le Client Secret sont corrects
- Assurez-vous qu'il n'y a pas d'espaces avant/après les valeurs dans le
.env
Erreur "access_denied"
- L'utilisateur a refusé les permissions
- Vérifiez que les scopes demandés sont bien configurés dans la console
L'erreur "Required parameter is missing: response_type"
- Cette erreur est maintenant corrigée avec la nouvelle version du fichier
calendar.ts - L'URL OAuth contient maintenant tous les paramètres requis :
response_type=code
Mode développement (sans OAuth réel)
Si vous voulez tester sans configurer OAuth pour l'instant, vous pouvez utiliser l'endpoint de connexion par identifiants (mock) :
curl -X POST http://localhost:5000/api/calendar/google/credentials \
-H "Content-Type: application/json" \
-d '{
"profileId": "test-profile",
"email": "test@gmail.com",
"password": "fake-password",
"label": "Test Google Calendar"
}'
Cette méthode crée une connexion factice pour tester l'interface sans vraie authentification OAuth.
Prochaines étapes
Une fois OAuth configuré, vous devrez :
- Implémenter l'échange du code d'autorisation contre un access token
- Stocker les tokens de manière sécurisée (chiffrement)
- Implémenter le refresh token pour maintenir l'accès
- Récupérer les événements du calendrier via l'API Google/Microsoft
- Synchroniser les événements avec votre base de données
Référez-vous à l'architecture PRONOTE pour un exemple de gestion sécurisée des tokens.