2013-08-30 2 views
4

Я использую google oAuth для моего приложения python, в котором у меня есть функция автоматического входа в Google с помощью Google. Когда я пытаюсь войти в первый раз, он будет успешным, но со следующего раза, если я войду в систему, это не удастся, и каждый раз, когда я получаю 500 внутренних ошибок сервера.Ошибка 'invalid_grant' с google oauth со второго раза

Когда я проверил журналы ошибок, я получил следующее сообщение об ошибке на «учетных данных = oAuthFlow.step2_exchange (код)» линия

Failed to retrieve access token: { 
    "error" : "invalid_grant" 
} 

У меня есть действительный ClientId зарегистрирован на Google. Может кто-нибудь сказать мне, почему это происходит. Я использую python 2.7.

ответ

6

Это может быть вызвано любое количество вещей, в том числе ...

  1. Пользователь отозвал разрешение
  2. Объемы изменились
  3. Google удалилась свой токен обновления
  4. Ошибки в вашем код, который представляет неправильный токен обновления. Помните, что вы ТОЛЬКО получите токен обновления в первый раз. При последующих вызовах токен обновления будет пустым, так как вы должны сохранить его в своей базе данных.

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

Хорошей новостью является то, что независимо от причины решение всегда одно и то же. Вам необходимо принудительно выполнить повторную авторизацию от своего пользователя.