从第二次谷歌oauth获取'invalid_grant'错误

时间:2013-08-30 10:58:44

标签: python-2.7 google-oauth

我正在使用google oAuth作为我的python应用程序,其中我有自动登录谷歌到我的应用程序的功能。当我第一次尝试登录时,它会成功,但是下次如果我将登录它并不成功,每次我得到500内部服务器错误。

当我检查错误日志时,我在'credentials = oAuthFlow.step2_exchange(code)'行

上收到以下错误消息
Failed to retrieve access token: {
    "error" : "invalid_grant"
}

我在google上注册了有效的clientId。 任何人都可以告诉我它为什么会发生。我正在使用python 2.7。

1 个答案:

答案 0 :(得分:6)

这可能是由许多事情引起的,包括......

  1. 用户已撤回许可
  2. 范围已更改
  3. Google已停用您的刷新令牌
  4. 代码中出现错误刷新令牌的错误。请记住,您只能在第一时间获得刷新令牌。在后续调用中,刷新令牌将为null,因为您应该将其保存在数据库中。
  5. 当我使用相同的用户进行测试和实时使用时,我得到了很多,因为两个刷新令牌往往会相互覆盖。

    好消息是无论原因是什么,解决方案总是一样的。您需要强制用户重新授权。