3.6 KiB
3.6 KiB
🔍 OAuth Debug Checklist
🚨 Проблема: Google callback получает параметры, но фронтенд получает auth_failed
✅ Диагностика выполнена:
- ✅ OAuth Endpoint существует:
/oauth/google/callback- роут настроен вmain.py - ⚠️ OAuth провайдеры: Настроены на продакшн сервере (Dokku), локально отсутствуют
- ✅ Логирование добавлено: Детальные логи на каждом этапе OAuth flow
🎯 Правильный подход к диагностике продакшн проблем:
🔧 Исправления внесены:
- Улучшена обработка ошибок: Правильный redirect на testing.discours.io с error параметрами
- Добавлена диагностика: Проверка конфигурации OAuth провайдеров
- Создан скрипт проверки:
scripts/check_oauth_config.py
🎯 Диагностика продакшн OAuth проблем:
1. Анализ продакшн логов (приоритет):
# Смотрим логи OAuth callback на продакшн сервере
dokku logs discours --tail 100 | grep -E "(OAuth|callback|google)"
# Ищем конкретные ошибки в логах
dokku logs discours --tail 500 | grep -E "(❌|ERROR|Exception)"
2. Проверка переменных окружения на сервере:
# Проверяем настройки OAuth на продакшн
dokku config:show discours | grep -E "(GOOGLE|GITHUB|OAUTH)"
3. Проверка redirect URI в Google Console:
- Должен быть:
https://v3.dscrs.site/oauth/google/callback - Проверить точное совпадение URL
- Убедиться что HTTPS включен
4. Тестирование с детальными логами:
- Логи уже добавлены в код
- Смотреть продакшн логи во время OAuth попытки
- Анализировать каждый этап: token exchange, profile fetch, user creation
🔍 Логи для мониторинга:
После настройки OAuth провайдеров, логи должны показывать:
✅ Got access token for google: True
✅ Got user profile for google: id=..., email=..., name=...
✅ User created/updated for google: user_id=..., email=...
✅ Session token created for google: token_length=...
🔗 OAuth redirect URL: https://testing.discours.io/oauth?redirect_url=...
OAuth успешно завершен для google, user_id=...
🚨 Критические проверки:
- Redirect URI в Google Console должен точно совпадать с
https://v3.dscrs.site/oauth/google/callback - HTTPS обязателен для продакшена
- Переменные окружения должны быть установлены на сервере
- Перезапуск сервера после установки переменных окружения
📊 Ожидаемый результат:
После настройки OAuth:
- ✅ Google callback обрабатывается успешно
- ✅ Пользователь создается/обновляется
- ✅ Session token устанавливается в httpOnly cookie
- ✅ Редирект на
https://testing.discours.io/oauth?redirect_url=... - ✅ Фронтенд получает успешную аутентификацию