Зачем нужен Google OAuth?
OAuth 2.0 — это протокол авторизации, который позволяет приложениям получать ограниченный доступ к аккаунтам пользователей без передачи паролей.
Google OAuth понадобится когда:
- Приложение работает с Gmail (чтение/отправка писем)
- Интеграция с Google Calendar (события, напоминания)
- Доступ к Google Drive (файлы, документы)
- Авторизация пользователей через "Войти с Google"
- Работа с любыми Google API
Client ID — идентификатор приложения
Client Secret — секретный ключ (никому не показывать!)
Шаг 1: Создание проекта в Google Cloud
Открой Google Cloud Console
Перейди на console.cloud.google.com и войди в Google-аккаунт.
Создай новый проект
В верхней панели нажми на выпадающий список проектов → "New Project" (Новый проект).
Задай название
Введи понятное название проекта (например, "My App OAuth") и нажми "Create".
Выбери проект
После создания убедись, что проект выбран в верхней панели.
Шаг 2: Настройка OAuth Consent Screen
Consent Screen — это экран, который увидят пользователи при авторизации через твоё приложение.
Открой настройки
В боковом меню перейди: APIs & Services → OAuth consent screen
Выбери тип приложения
External — для приложений, доступных всем пользователям (выбирай этот)
Internal — только для пользователей твоей организации Google Workspace
Заполни информацию о приложении
- App name — название приложения (видят пользователи)
- User support email — твой email для обращений
- Developer contact — email разработчика (внизу страницы)
Остальные поля можно оставить пустыми для тестирования.
Scopes (разрешения)
Нажми "Add or remove scopes" и выбери нужные разрешения. Для теста можно пропустить — добавишь позже.
Test users
Пока приложение в статусе "Testing", добавь свой email в список тестовых пользователей.
Сохрани
Нажми "Save and Continue" на каждом шаге, затем "Back to Dashboard".
В режиме Testing приложение доступно только тестовым пользователям (макс. 100). Для публичного доступа нужна верификация Google.
Шаг 3: Создание Credentials (Client ID)
Открой раздел Credentials
В боковом меню: APIs & Services → Credentials
Создай OAuth Client ID
Нажми "+ Create Credentials" → "OAuth client ID"
Выбери тип приложения
Выбери подходящий тип:
- Web application — для веб-приложений
- Desktop app — для десктопных приложений
- iOS / Android — для мобильных
Для большинства случаев подойдёт Web application.
Настрой redirect URIs
Добавь Authorized redirect URIs — URL, куда Google перенаправит пользователя после авторизации.
Примеры:
http://localhost:3000/auth/callback
http://localhost:8080/oauth2callback
https://yourdomain.com/auth/callback
Создай и сохрани ключи
Нажми "Create". Появится окно с:
- Client ID — скопируй
- Client Secret — скопируй (показывается один раз!)
Теперь у тебя есть Client ID и Client Secret для Google OAuth.
Использование в приложении
Сохрани полученные ключи в переменные окружения:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
Никогда не публикуй Client Secret в публичных репозиториях. Добавь .env в .gitignore.
Пример URL для авторизации
https://accounts.google.com/o/oauth2/v2/auth?
client_id=YOUR_CLIENT_ID&
redirect_uri=YOUR_REDIRECT_URI&
response_type=code&
scope=email%20profile&
access_type=offline
Включение нужных API
Для работы с конкретными сервисами Google нужно включить соответствующие API.
Открой библиотеку API
В боковом меню: APIs & Services → Library
Найди и включи нужные API
Популярные API:
- Gmail API — работа с почтой
- Google Calendar API — календарь и события
- Google Drive API — файлы и документы
- Google Sheets API — таблицы
Нажми Enable
Для каждого API нажми "Enable" (Включить).
Частые вопросы
Ошибка "redirect_uri_mismatch"
Redirect URI в запросе не совпадает с настроенным в Console. Проверь:
- Точное совпадение URL (включая http/https, порт, путь)
- Нет лишних слэшей в конце
- URI добавлен в Authorized redirect URIs
Ошибка "Access blocked: app not verified"
Приложение в режиме Testing. Добавь свой email в список Test users в OAuth consent screen.
Как получить Refresh Token?
Добавь access_type=offline и prompt=consent в URL авторизации. Google выдаст refresh token при первой авторизации.
Сколько стоит Google OAuth?
OAuth 2.0 — бесплатный. Но некоторые API имеют лимиты (например, Gmail API — 1 млрд запросов/день). Для большинства проектов бесплатного лимита достаточно.