OAuth Интеграция
Обзор
Интеграция с OAuth-провайдерами позволяет пользователям легко входить в ваше приложение, используя существующие учетные записи GitHub, Google и других сервисов. Данный проект поддерживает аутентификацию с использованием различных OAuth-провайдеров.
Настройка OAuth требует создания приложений в соответствующих платформах и получения идентификаторов для интеграции их с вашим проектом.
GitHub OAuth
Создание OAuth приложения GitHub
- Перейдите на страницу GitHub Developer Settings
- Нажмите на кнопку "New OAuth App" (или выберите существующее приложение для редактирования)
- Заполните форму регистрации:
- Название приложения: DevShip (или любое другое название по вашему выбору)
- Домашняя страница: URL вашего приложения (например,
http://localhost:3000
для локальной разработки) - Описание приложения: Краткое описание вашего приложения
- URL обратного вызова (Callback URL):
http://localhost:8000/api/v1/auth/github/callback
для локальной разработки, или ваш домен и путь для продакшена
- Нажмите "Register Application"
- После создания вы получите Client ID и сможете сгенерировать Client Secret
- Скопируйте эти значения и добавьте их в файл конфигурации вашего приложения или в переменные окружения:
GITHUB_CLIENT_ID=ваш_client_id GITHUB_CLIENT_SECRET=ваш_client_secret GITHUB_REDIRECT_URI=http://localhost:8000/api/v1/auth/github/callback
Важные замечания:
- Убедитесь, что Callback URL точно соответствует URI, настроенному в вашем приложении
- Храните Client Secret в безопасности и не включайте его в публичный код
- В продакшен-среде рекомендуется использовать HTTPS для всех URL-адресов
Google OAuth
Создание проекта Google OAuth
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- В боковом меню выберите "APIs & Services" → "Credentials"
- Нажмите "Create Credentials" и выберите "OAuth client ID"
- Если это ваш первый раз, вам нужно настроить экран согласия OAuth:
- Выберите тип "External" (или "Internal", если вы используете Google Workspace)
- Заполните обязательные поля: имя приложения, email поддержки, домен вашего приложения
- Добавьте области доступа, которые вам нужны (как минимум,
email
иprofile
) - Заполните информацию о разработчике и сохраните
- Вернитесь к созданию OAuth client ID:
- Тип приложения: Web application
- Название: DevShip Web Client (или любое другое название)
- Authorized JavaScript origins:
http://localhost:3000
(для локальной разработки) - Authorized redirect URIs:
http://localhost:8000/api/v1/auth/google/callback
- Нажмите "Create"
- Вы получите Client ID и Client Secret
- Добавьте эти значения в файл конфигурации вашего приложения или в переменные окружения:
GOOGLE_CLIENT_ID=ваш_client_id GOOGLE_CLIENT_SECRET=ваш_client_secret GOOGLE_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/callback
Важные замечания:
- Для рабочего приложения вам нужно пройти верификацию приложения Google, если вы используете тип "External"
- Убедитесь, что включили нужные API в разделе "Library" (например, Google People API для профиля)
- В продакшен-среде добавьте ваш настоящий домен в authorized origins и redirect URIs
- Для приложений без верификации максимальное количество пользователей ограничено 100
Использование в приложении
После настройки OAuth-провайдеров, вы можете использовать полученные учетные данные для интеграции с вашим приложением. В бэкенде проекта уже реализованы маршруты для аутентификации через GitHub и Google.
Настройка в бэкенде
Добавьте полученные учетные данные в конфигурационный файл бэкенда или в переменные окружения:
# Файл .env в корне бэкенда
# GitHub OAuth
GITHUB_CLIENT_ID=ваш_github_client_id
GITHUB_CLIENT_SECRET=ваш_github_client_secret
GITHUB_REDIRECT_URI=http://localhost:8000/api/v1/auth/github/callback
# Google OAuth
GOOGLE_CLIENT_ID=ваш_google_client_id
GOOGLE_CLIENT_SECRET=ваш_google_client_secret
GOOGLE_REDIRECT_URI=http://localhost:8000/api/v1/auth/google/callback