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

Wor*_*php 4 python-2.7 google-oauth

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

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

Failed to retrieve access token: {
    "error" : "invalid_grant"
}
Run Code Online (Sandbox Code Playgroud)

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

pin*_*yid 6

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

  1. 用户已撤回许可
  2. 范围已经改变
  3. Google已停用您的刷新令牌
  4. 代码中出现错误刷新令牌的错误.请记住,您只能在第一时间获得刷新令牌.在后续调用中,刷新令牌将为null,因为您应该将其保存在数据库中.

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

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