В настоящее время я внедряю аутентификацию Google+ на Android с автономным доступом. Это влечет за собой запрос одноразового кода авторизации, который можно отправить на сервер и обменять на токен обновления. Все идет нормально.
Однако представьте, что на сервере произошла ошибка между моментом погашения кода и отправкой пользователю ответа, указывающего, что он прошел аутентификацию. Если затем пользователь повторно запрашивает код аутентификации, Google возвращает тот же код, который был выдан ранее. Когда сервер пытается активировать этот код в Google, возникает ошибка
«Недействительный грант — этот код уже был погашен»
возвращается.
Есть ли способ изящно выйти из такого случая, который не требует от пользователя «повторить попытку позже», когда Google решит выпустить новый код? Я понимаю, что период ожидания для получения нового кода составляет всего 5 или 10 минут, но это все еще не очень приятная ситуация с точки зрения пользователя.