OAuth. Работа с разными scopes — как?

Привет!

Есть веб-сервис. Он предоставляет юзерам возможность войти через OAuth, а также в дальнейшем использовать некоторые сервисы для сбора данных. Возьмем для простоты 2 провайдера: Google и Яндекс.

1. При логине достаточно запросить доступ на чтение базовой информации (почта и тд). Это решается добавлением соответствующего scopes в запрос при получении access-токена.
2. Далее мы хотим подключиться к Яндекс.Метрике и Google.Analytics (или Яндекс.Диску и Google.Drive, не важно). И тут проблема - ведь мы не предусматривали такую необходимость при запросе токена.

На всякий случай уточню, что в п2 мы будем запрашивать offline-токены.

Варианты:

1. Использовать один и тот же токен для всех сервисов провайдера. В случае с Google это решается через Incremental authorization, а вот Яндекс требует прописать ВСЕ потенциально требуемые доступы заранее в настройках приложения. Понятное дело, что посетителя может смутить обширный список доступов, запрашиваемых проектом во время регистрации.
2. Создавать отдельные приложения (т.е. пары clientId+clientSecret) под каждый сервис. Это должно меньше смущать пользователя (запрашиваем доступ только к тому, что реально нужно), но приводит к разрастанию сопровождаемых приложений. Хотя их число все равно будет не слишком большим и работа по сути разовая. Но ощущение костыля все равно остается.

А как вы решаете подобные проблемы?
  • Вопрос задан
  • 311 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы