Ограничения при доступе к API Google с использованием сервисного аккаунта и OAuth

Мое текущее приложение обращается к одному из API Google, используя OAuth 2.0 с «тремя ногами». Пользователь авторизует приложение на экране согласия Google, затем приложение запрашивает API от имени пользователя и показывает ему некоторые необычные данные, загруженные из API. Ежедневно мое приложение загружает и трансформирует данные из этого API, поэтому когда пользователь приходит в следующий раз, он видит самые актуальные и актуальные данные.

На старте все работает нормально, но со временем столкнулся с двумя проблемами: 1. Ограничения запросов. 2. Время жизни токена.

Мой вопрос посвящен второму, который я называю «жизнь токена». Через некоторое время срок действия токена доступа истекает, и когда пользователь возвращается в приложение, наше приложение обязано снова отправить его на экран согласия. Более того, все время, пока токен доступа находится в просроченном состоянии, мое приложение не может загрузить соответствующие данные для пользователя.

Как я могу решить эту проблему? Как продлить время жизни токенов доступа/обновления? Поможет ли сервисный аккаунт? Будет ли учетная запись службы работать с API Google Search Console для каждого пользователя, или пользователь должен быть пользователем G Suite в моем домене или что? Эти вопросы совершенно неясны из официальной здесь и из < href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/how-tos/authorizing" rel="nofollow noreferrer">документация по API Search Console.

Если у вас есть опыт работы с API Google, пожалуйста, помогите мне! Спасибо


person Vladimir Ignatyev    schedule 27.05.2020    source источник


Ответы (1)


Когда вы используете OAuth с согласием пользователя, вам не нужно повторно запрашивать согласие пользователя.

[a] Если ваш вариант использования полностью находится в сети и вы хотите иметь возможность запрашивать токен каждый раз, когда пользователь посещает ваше приложение, используйте Библиотека входа Google или см. эту документацию для клиентских приложений.

[b] Если ваш вариант использования заключается в том, что вы хотите иметь возможность получать токены доступа, даже когда пользователь отсутствует, вам необходимо запросить код авторизации и сохранить свой токен обновления. Ваши токены обновления имеют более длительный срок службы и могут периодически обмениваться на токены доступа. .

person user2705223    schedule 28.05.2020