Как автоматизировать вход в Google API, чтобы получить токен OAuth 2.0 для доступа к известной учетной записи пользователя - программирование
Подтвердить что ты не робот

Как автоматизировать вход в Google API, чтобы получить токен OAuth 2.0 для доступа к известной учетной записи пользователя

Хорошо, поэтому этот вопрос был задан до здесь. В ответе/ответе на вопрос пользователь говорит ему хранить refresh_token в приложении (сеанс, а не db, хотя неважно, где вы его храните). После прохождения документации в Google кажется, что access_token имеет дату истечения срока действия, после которой она больше не действительна. Теперь мы могли бы автоматически обновить токен каждый фиксированный интервал или если служба возвращает недопустимую ошибку токена, тем самым продлевая срок службы токена, но по какой-то причине этот ручной процесс выглядит немного взломанным. Мои вопросы:

  • Это самый эффективный (общепринятый) способ доступа к данным календаря/приложения Google для известной учетной записи пользователя путем ручного входа в систему и сохранения токена в приложении? Или есть еще один механизм, который позволяет нам программно войти в эту учетную запись пользователя и пройти через шаги OAuth?
4b9b3361

Ответ 1

В моем приложении поток выглядит следующим образом:

  • Если нет access_token, перенаправляйте пользователя на страницу Google, где они предоставляют доступ к вашему приложению, обращаясь к их данным Google. Это возвращает код авторизации для вашего приложения.
  • Используйте код авторизации для получения access_token и refresh_token. Вы также должны сохранить возвращаемое значение expires_in, которое сообщает вам, когда истечет access_token и больше не может использоваться.
  • Всякий раз, когда вам нужно получить доступ к API, вы можете проверить свою БД, если срок действия access_token истек - если это так, используйте refresh_token, чтобы получить новый access_token перед доступом к API.

Я не столкнулся с какими-либо проблемами, так как это касается пользователя, им нужно только один раз предоставить доступ, после чего приложение будет проверять подлинность.

Это должно решить вашу проблему, потому что приложение программно продолжает повторную аутентификацию на основе того, что пользователь вначале предоставляет доступ к вашему приложению, и вам не нужно ничего делать вручную. На самом деле, я не уверен, что есть другой способ сделать это, потому что для повторного выполнения процесса OAuth пользователь должен сидеть перед устройством, чтобы предоставить доступ вручную. Это точка сохранения access_token и refresh_token в вашей базе данных.