Безопасный доступ к Google API с помощью авторизации OAuth и хранения токенов
Узнайте, как создавать умные приложения для продуктивности (например, AI-агента), которые интегрируются с Google API с использованием Logto Secret Vault для безопасного доступа, хранения refresh токенов, поэтапной авторизации и бесшовной интеграции по OIDC/OAuth 2.0.
В современном взаимосвязанном цифровом пространстве приложения, способные легко интегрироваться со сторонними сервисами, обеспечивают исключительный пользовательский опыт. Независимо от того, разрабатываете ли вы пакет для продуктивности, AI-агента или платформу для совместной работы с документами, возможность безопасно получать доступ к API таких сервисов, как Google, GitHub, Facebook или любые другие, может сделать ваше приложение незаменимым.
Сегодня мы рассмотрим, как возможности Secret Vault и Social Connector в Logto позволяют создать умное приложение для продуктивности с интеграцией Google API. М ы продемонстрируем безопасное хранение токенов, получение access-токенов для AI-доступа, поэтапную авторизацию и бесшовную интеграцию со сторонними сервисами.
Задача: создание умного календарного помощника
Представьте, что вы разрабатываете “Умного Календарного Помощника” — приложение, помогающее пользователям разумно управлять своим расписанием. Вот что должно уметь ваше приложение:
- Базовая аутентификация: пользователи входят в приложение с помощью Google-аккаунта.
- Управление профилем: отображение базовой информации профиля пользователя.
- Интеграция календаря: чтение событий календаря для предоставления аналитики расписания.
- Продвинутые функции: создание событий календаря, отправка приглашений на встречи через Gmail и управление документами в Google Drive, но только по явному запросу пользователя к этим премиальным функциям.
В чем с ложность? Нужно разные уровни доступа к Google API в зависимости от ситуации, а хранить токены необходимо безопасно, чтобы не запрашивать повторную аутентификацию пользователей для каждого действия.
Решение: Поэтапная авторизация Logto с Secret Vault
Подход Logto элегантно решает данную задачу за счет:
- Минимальных начальных разрешений (scopes): запрашиваются только необходимые разрешения при входе.
- Поэтапной (инкрементальной) авторизации: дополнительные разрешения запрашиваются по мере необходимости для премиум функций.
- Безопасного хранения токенов: access/refresh токены хранятся и управляются в зашифрованном Secret Vault.
- Автоматического обновления токенов: истечение срока действия токена обрабатывается прозрачно для пользователя.
Давайте пройдемся по реализации.
Шаг 1: Настройка Google-коннектора с базовыми разрешениями
Сначала создайте и настройте ваш Google-коннектор в Logto Console. На начальном этапе указывайте минимальные разрешения для базовой аутентификации:
Посмотрите Google API Library и документацию по OAuth 2.0 scopes, чтобы подобрать разрешения для своих задач.
Основные шаги настройки:
- Создайте OAuth-клиент в Google Cloud Console. Отметьте все необходимые вашему приложению разрешения.
- Настройте Google-коннектор Logto с вашими клиентскими данными. В поле
Scopes
добавьте перечисленные выше минимальные разрешения. - Включите Store tokens for persistent API access (Хранить токены для постоянного доступа к API) в настройках коннектора.
- В списке Prompts укажите
consent
, также включите Offline Access для получения refresh токена.
Подробнее читайте в документации Logto по настройке Google-коннектора.
Теперь пользователи могут входить в приложение и давать разрешение на чтение своих событий календаря — этого достаточно для предоставления базовой аналитики расписания.
Шаг 2: Реализация процесса входа
Перейдите по ссылке Logto > Sign-in experience > Sign-up and sign-in. Добавьте Google-коннектор в разделе Social sign-in, чтобы пользователи могли аутентифицироваться через Google.
Когда пользователь входит через Google, Logto автоматически:
- Аутентифицирует пользователя с учётом заданных разрешений.
- Безопасно сохраняет access- и refresh-токены в Secret Vault.
- Возвращает вашему приложению информацию о профиле пользователя.
Теперь токены безопасно хранятся и привязаны к Google-идентификатору пользователя, готовы для обращения к API.
Шаг 3: Доступ к Google API с использованием сохранённых токенов
Чтобы прочитать события календаря пользователя, получите сохранённый access-токен и вызовите Google Calendar API:
Logto автоматически обновляет токен: если срок действия access-токена истёк, но есть refresh token, Logto прозрачно получает новый access-токен.