Files
core/docs/oauth-debug-checklist.md
Untone 0f6cc61286
Some checks failed
Deploy on push / deploy (push) Failing after 36s
mypyfix
2025-09-27 12:31:53 +03:00

3.6 KiB
Raw Blame History

🔍 OAuth Debug Checklist

🚨 Проблема: Google callback получает параметры, но фронтенд получает auth_failed

Диагностика выполнена:

  1. OAuth Endpoint существует: /oauth/google/callback - роут настроен в main.py
  2. ⚠️ OAuth провайдеры: Настроены на продакшн сервере (Dokku), локально отсутствуют
  3. Логирование добавлено: Детальные логи на каждом этапе OAuth flow

🎯 Правильный подход к диагностике продакшн проблем:

🔧 Исправления внесены:

  1. Улучшена обработка ошибок: Правильный redirect на testing.discours.io с error параметрами
  2. Добавлена диагностика: Проверка конфигурации OAuth провайдеров
  3. Создан скрипт проверки: 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=...

🚨 Критические проверки:

  1. Redirect URI в Google Console должен точно совпадать с https://v3.dscrs.site/oauth/google/callback
  2. HTTPS обязателен для продакшена
  3. Переменные окружения должны быть установлены на сервере
  4. Перезапуск сервера после установки переменных окружения

📊 Ожидаемый результат:

После настройки OAuth:

  • Google callback обрабатывается успешно
  • Пользователь создается/обновляется
  • Session token устанавливается в httpOnly cookie
  • Редирект на https://testing.discours.io/oauth?redirect_url=...
  • Фронтенд получает успешную аутентификацию