Ограничения при доступе к API Google с использованием служебной учетной записи и OAuth - PullRequest
0 голосов
/ 27 мая 2020

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

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

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

Как я могу решить эту проблему? Как продлить время жизни токенов доступа / refre sh? Поможет ли сервисный аккаунт? Будет ли учетная запись службы работать с API консоли поиска Google для каждого пользователя, или пользователь должен быть пользователем G Suite внутри моего домена или что? Эти вопросы совершенно неясны из официальной документации здесь и из документации Search Console API .

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

1 Ответ

1 голос
/ 28 мая 2020

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

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

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

...