Files
core/docs/oauth-setup.md

123 lines
4.2 KiB
Markdown
Raw Normal View History

2025-09-23 21:34:48 +03:00
# 🔐 Настройка OAuth Провайдеров
## 🎯 Быстрая настройка для менеджера
### 1. Google OAuth
1. Перейти в [Google Cloud Console](https://console.cloud.google.com/)
2. Создать проект или выбрать существующий
3. **APIs & Services****Credentials****Create Credentials****OAuth 2.0 Client ID**
4. **Application type**: Web application
5. **Authorized redirect URIs**:
- `https://v3.dscrs.site/oauth/google/callback`
- `http://localhost:3000/oauth/google/callback` (для разработки)
6. Скопировать **Client ID** и **Client Secret**
**Переменные окружения:**
```bash
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
```
### 2. GitHub OAuth
1. Перейти в [GitHub Developer Settings](https://github.com/settings/developers)
2. **New OAuth App**
3. **Authorization callback URL**: `https://v3.dscrs.site/oauth/github/callback`
4. Скопировать **Client ID** и **Client Secret**
**Переменные окружения:**
```bash
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
```
### 3. VK OAuth
1. Перейти в [VK Developers](https://dev.vk.com/apps)
2. **Создать приложение****Веб-сайт**
3. **Настройки****Redirect URI**: `https://v3.dscrs.site/oauth/vk/callback`
4. Скопировать **ID приложения** и **Защищённый ключ**
**Переменные окружения:**
```bash
VK_CLIENT_ID=your_vk_app_id
VK_CLIENT_SECRET=your_vk_secure_key
```
### 4. Facebook OAuth
1. Перейти в [Facebook Developers](https://developers.facebook.com/)
2. **My Apps****Create App****Consumer**
3. **Facebook Login****Settings**
4. **Valid OAuth Redirect URIs**: `https://v3.dscrs.site/oauth/facebook/callback`
5. Скопировать **App ID** и **App Secret**
**Переменные окружения:**
```bash
FACEBOOK_CLIENT_ID=your_facebook_app_id
FACEBOOK_CLIENT_SECRET=your_facebook_app_secret
```
### 5. Yandex OAuth
1. Перейти в [Yandex OAuth](https://oauth.yandex.ru/)
2. **Создать новое приложение**
3. **Callback URI**: `https://v3.dscrs.site/oauth/yandex/callback`
4. **Права**: `login:info`, `login:email`, `login:avatar`
5. Скопировать **ID** и **Пароль**
**Переменные окружения:**
```bash
YANDEX_CLIENT_ID=your_yandex_client_id
YANDEX_CLIENT_SECRET=your_yandex_client_secret
```
## 🚀 Развертывание
### Локальная разработка
```bash
# .env файл
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
# и т.д.
```
### Продакшн (Dokku/Heroku)
```bash
# Установка переменных окружения
dokku config:set myapp GOOGLE_CLIENT_ID=xxx GOOGLE_CLIENT_SECRET=yyy
# или
heroku config:set GOOGLE_CLIENT_ID=xxx GOOGLE_CLIENT_SECRET=yyy
```
## ✅ Проверка настройки
1. Перезапустить приложение
2. Проверить логи: `OAuth provider google: id=SET, key=SET`
3. Тестовый вход: `https://v3.dscrs.site/oauth/google`
## 🔍 Диагностика проблем
**Ошибка "Provider not configured":**
- Проверить переменные окружения
- Убедиться что значения не пустые
- Перезапустить приложение
**Ошибка redirect_uri_mismatch:**
- Проверить точное соответствие URL в настройках провайдера
- Убедиться что протокол (http/https) совпадает
**VK ошибка "Code challenge method is unsupported":**
- Это нормально, VK не поддерживает PKCE
- Система автоматически обрабатывает это
## 📞 Поддержка
При проблемах проверить:
1. Логи приложения при запуске
2. Настройки redirect URI у провайдера
3. Корректность переменных окружения