Google API OAuth2

#oauth-2.0 #google-api

Вопрос:

Я пытаюсь создать интеграцию ETL с Google таблицами. На переднем конце я смог предложить пользователю предоставить доступ к их диску и листам, но я хотел бы каким-то образом выполнить запланированную синхронизацию с облачными функциями в Firebase, чтобы получить доступ к их листам и синхронизировать данные с другой конечной точкой. Как я могу использовать предоставленное разрешение для выполнения этого на серверной части без повторной аутентификации? Я не могу найти никаких статей об этом в Интернете или в документации gapi.

Ответ №1:

Если вы укажете offline_access область действия в запросе на авторизацию, вы должны получить токен обновления с сервера авторизации, если пользователь предоставит вам это разрешение.

С помощью этого токена обновления вы можете получить новый токен доступа с сервера авторизации без участия пользователя.

Обратите внимание, что маркер обновления обычно также имеет срок годности.

Комментарии:

1. Спасибо, м8! По-видимому, получение маркера обновления на стороне клиента невозможно, поскольку он обрабатывается библиотекой автоматически, вместо этого я мог бы вызвать метод requestOfflineAccess() на клиенте, который возвращает код, который в свою очередь может быть использован в бэкэнд-запросе для получения надлежащего маркера для использования в будущем.

2. То, что вы имеете в виду, — это поток обновления: tools.ietf.org/html/rfc6749#section-6 .