Ответ 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
в вашей базе данных.