mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-11 17:29:37 +02:00
Problème: L'authentification OAuth Google Calendar échouait avec "Error 400: invalid_request" et "Accès bloqué" depuis que l'URL est devenue configurable. Avant, l'URL était hardcodée à https://note.ffnancy.fr et fonctionnait correctement. Cause: Quand app_url n'est pas configuré dans les paramètres ET que la détection automatique échoue, l'application ne pouvait pas générer de redirect_uri valide, causant le rejet par Google OAuth. Solution: Ajout d'une URL de fallback hardcodée en dernière priorité pour garantir que l'authentification OAuth fonctionne toujours : Ordre de priorité (cascade): 1. customRedirectUri (si fournie explicitement) 2. app_url configurée dans paramètres 3. URL détectée depuis headers HTTP 4. **URL hardcodée par défaut: https://note.ffnancy.fr** (NOUVEAU) Changements: - routes/calendar.routes.js: * Ajout constante defaultProductionUrl = 'https://note.ffnancy.fr' * Modification cascade redirectUri pour inclure fallback hardcodé * Ajout log: "OAuth redirect URI utilisée" pour debug * Suppression erreur bloquante si aucune URL trouvée - src/pages/Index.tsx: * Revert des messages d'erreur complexes (pas nécessaires) * Retour au message simple et clair - GUIDE_ERREUR_OAUTH_GOOGLE.md: (NOUVEAU) * Guide complet pour résoudre "Error 400: invalid_request" * Instructions pour ajouter utilisateurs testeurs dans Google Console * Instructions pour publier l'application OAuth * FAQ et troubleshooting détaillé Comportement: - OAuth fonctionne immédiatement sans configuration manuelle app_url - Compatible avec proxy inverse et détection automatique - Garde la flexibilité de configuration pour autres environnements - Log l'URL utilisée pour faciliter le debug Cette correction restaure le fonctionnement d'avant tout en gardant la flexibilité de configuration pour les cas d'usage avancés.
175 lines
6.3 KiB
Markdown
175 lines
6.3 KiB
Markdown
# 🚨 Résolution : Erreur 400 - Accès bloqué Google OAuth
|
|
|
|
## L'erreur que vous voyez
|
|
|
|
```
|
|
Accès bloqué : erreur d'autorisation
|
|
You can't sign in to this app because it doesn't comply with Google's OAuth 2.0 policy
|
|
Error 400: invalid_request
|
|
```
|
|
|
|
## 🔍 Cause du problème
|
|
|
|
Cette erreur se produit quand votre **application OAuth est en mode "Testing"** dans Google Cloud Console et que l'utilisateur qui essaie de se connecter n'est pas dans la liste des testeurs autorisés.
|
|
|
|
## ✅ Solution complète (étape par étape)
|
|
|
|
### Option 1 : Ajouter l'utilisateur comme testeur (Solution rapide)
|
|
|
|
#### Étape 1 : Accéder à l'écran de consentement OAuth
|
|
1. Allez sur [Google Cloud Console](https://console.cloud.google.com)
|
|
2. Sélectionnez votre projet
|
|
3. Dans le menu de gauche : **APIs & Services** > **OAuth consent screen**
|
|
|
|
#### Étape 2 : Vérifier le statut de publication
|
|
Vous devriez voir :
|
|
```
|
|
Publishing status: Testing
|
|
```
|
|
|
|
#### Étape 3 : Ajouter des utilisateurs testeurs
|
|
1. Faites défiler jusqu'à la section **"Test users"**
|
|
2. Cliquez sur **"+ ADD USERS"**
|
|
3. Ajoutez l'adresse email : `michaelschal@gmail.com`
|
|
4. Cliquez sur **"SAVE"**
|
|
|
|
#### Étape 4 : Tester la connexion
|
|
1. Retournez sur NoteFlow
|
|
2. Dans **Administration** > **Google Calendar**
|
|
3. Cliquez sur **"Se connecter avec Google"**
|
|
4. ✅ Vous devriez maintenant pouvoir vous authentifier !
|
|
|
|
---
|
|
|
|
### Option 2 : Publier l'application (Solution permanente)
|
|
|
|
⚠️ **Attention** : Cette option est pour une utilisation publique. Si c'est pour un usage personnel, utilisez l'Option 1.
|
|
|
|
#### Étape 1 : Préparer l'application
|
|
1. Allez sur [Google Cloud Console](https://console.cloud.google.com)
|
|
2. **APIs & Services** > **OAuth consent screen**
|
|
|
|
#### Étape 2 : Compléter l'écran de consentement
|
|
Assurez-vous d'avoir rempli :
|
|
- ✅ App name (Nom de l'application) : `NoteFlow`
|
|
- ✅ User support email (Email de support)
|
|
- ✅ Developer contact information (Informations de contact)
|
|
- ✅ App logo (Optionnel mais recommandé)
|
|
- ✅ App domain (Domaine de l'application) : `note.ffnancy.fr`
|
|
- ✅ Authorized domains : `ffnancy.fr`
|
|
|
|
#### Étape 3 : Vérifier les Scopes (Permissions)
|
|
Dans l'onglet **"Scopes"**, assurez-vous d'avoir uniquement :
|
|
```
|
|
https://www.googleapis.com/auth/calendar.readonly
|
|
https://www.googleapis.com/auth/calendar.events
|
|
```
|
|
|
|
Ces scopes sont considérés comme "sensibles" mais **ne nécessitent PAS** de vérification Google pour un usage personnel.
|
|
|
|
#### Étape 4 : Publier l'application
|
|
1. Retournez sur l'onglet **"OAuth consent screen"**
|
|
2. Cliquez sur le bouton **"PUBLISH APP"**
|
|
3. Confirmez en cliquant sur **"CONFIRM"**
|
|
|
|
⚠️ **Note importante** :
|
|
- Votre app restera en status "In production" mais **"Not verified"**
|
|
- C'est **normal et acceptable** pour un usage personnel ou interne
|
|
- Les utilisateurs verront un avertissement mais pourront cliquer sur "Advanced" > "Go to NoteFlow (unsafe)" pour continuer
|
|
- Google ne nécessite une vérification que pour les apps publiques avec beaucoup d'utilisateurs
|
|
|
|
---
|
|
|
|
## 🔧 Vérifications supplémentaires
|
|
|
|
### 1. Vérifier l'URL de redirection
|
|
|
|
Dans **APIs & Services** > **Credentials** > Votre OAuth 2.0 Client ID :
|
|
|
|
L'URL de redirection doit être **EXACTEMENT** :
|
|
```
|
|
https://note.ffnancy.fr/api/calendar/oauth-callback
|
|
```
|
|
|
|
❌ **Erreurs courantes** :
|
|
- `https://note.ffnancy.fr/api/calendar/oauth-callback/` (slash à la fin)
|
|
- `http://note.ffnancy.fr/api/calendar/oauth-callback` (http au lieu de https)
|
|
- `https://www.note.ffnancy.fr/api/calendar/oauth-callback` (www en trop)
|
|
|
|
### 2. Vérifier l'API activée
|
|
|
|
Dans **APIs & Services** > **Library** :
|
|
1. Recherchez **"Google Calendar API"**
|
|
2. Vérifiez que le status est **"ENABLED"**
|
|
3. Si ce n'est pas le cas, cliquez sur **"ENABLE"**
|
|
|
|
### 3. Vérifier les credentials dans NoteFlow
|
|
|
|
Dans NoteFlow > **Administration** > **Google Calendar** :
|
|
1. Méthode d'authentification : **OAuth 2.0**
|
|
2. Client ID Google : Doit commencer par des chiffres et finir par `.apps.googleusercontent.com`
|
|
3. Client Secret : Doit commencer par `GOCSPX-`
|
|
4. URL du site : `https://note.ffnancy.fr` (automatiquement détectée)
|
|
|
|
---
|
|
|
|
## 📋 Résumé de la solution recommandée
|
|
|
|
### Pour un usage personnel (recommandé) :
|
|
|
|
```
|
|
1. Google Cloud Console > OAuth consent screen
|
|
2. Vérifier : Publishing status = Testing
|
|
3. Ajouter michaelschal@gmail.com dans "Test users"
|
|
4. SAVE
|
|
5. Retourner sur NoteFlow et se reconnecter
|
|
```
|
|
|
|
### Pour un usage public :
|
|
|
|
```
|
|
1. Compléter toutes les informations de l'écran de consentement
|
|
2. Publier l'application (PUBLISH APP)
|
|
3. Accepter que l'app soit "Not verified" (c'est normal)
|
|
4. Les utilisateurs devront cliquer sur "Advanced" > "Continue to NoteFlow"
|
|
```
|
|
|
|
---
|
|
|
|
## ❓ Questions fréquentes
|
|
|
|
### Pourquoi Google dit que mon app n'est pas conforme ?
|
|
En mode "Testing", seuls les utilisateurs testeurs listés peuvent accéder à l'application. C'est une mesure de sécurité de Google.
|
|
|
|
### Est-ce que je dois faire vérifier mon application par Google ?
|
|
**Non**, sauf si :
|
|
- Vous avez plus de 100 utilisateurs
|
|
- Vous publiez l'application publiquement
|
|
- Vous demandez des scopes sensibles en dehors du calendrier
|
|
|
|
Pour un usage personnel ou en petite équipe, le mode "Testing" avec des testeurs est suffisant.
|
|
|
|
### Combien de testeurs puis-je ajouter ?
|
|
Jusqu'à **100 testeurs** en mode "Testing". C'est largement suffisant pour un usage personnel ou une petite entreprise.
|
|
|
|
### L'authentification expire-t-elle ?
|
|
En mode "Testing", les tokens OAuth expirent après **7 jours**. En mode "Production", ils sont permanents (jusqu'à révocation).
|
|
|
|
---
|
|
|
|
## 🆘 Besoin d'aide ?
|
|
|
|
Si le problème persiste après avoir suivi ces étapes :
|
|
1. Vérifiez les logs de l'application : `docker-compose logs -f notes-todo-app`
|
|
2. Vérifiez que vous avez attendu 5-10 minutes après les changements dans Google Cloud Console
|
|
3. Essayez en navigation privée pour éliminer les problèmes de cache
|
|
4. Déconnectez-vous de Google Calendar dans NoteFlow et reconnectez-vous
|
|
|
|
---
|
|
|
|
## 📚 Documentation supplémentaire
|
|
|
|
- [Guide complet OAuth 2.0](./OAUTH_SETUP.md)
|
|
- [Configuration Google Calendar](./GUIDE_CONFIG_OAUTH.md)
|
|
- [Google OAuth 2.0 Documentation](https://developers.google.com/identity/protocols/oauth2)
|