5

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

当我检查错误日志时,我在“credentials = oAuthFlow.step2_exchange(code)”行收到以下错误消息

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

我在 google 上注册了有效的 clientId。谁能告诉我为什么会这样。我正在使用python 2.7。

4

1 回答 1

6

它可能是由任何数量的事情引起的,包括...

  1. 用户已撤销权限
  2. 范围发生了变化
  3. Google 已停用您的刷新令牌
  4. 您的代码中存在错误刷新令牌的错误。请记住,您只会在第一次通过时获得刷新令牌。在后续调用中,刷新令牌将为空,因为您应该已将其保存在数据库中。

当我使用同一个用户进行测试和实时使用时,我得到了很多,因为这两个刷新令牌往往会相互覆盖。

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

于 2013-09-03T08:51:16.477 回答