iOS 中的 Google OAuth2 问题 - “invalid_grant”错误

Posted

技术标签:

【中文标题】iOS 中的 Google OAuth2 问题 - “invalid_grant”错误【英文标题】:Issues with Google OAuth2 in iOS - "invalid_grant" error 【发布时间】:2014-03-24 07:37:54 【问题描述】:

我在 ios 中遇到了 Google OAuth2 问题;我收到“invalid_grant”错误。我正在执行以下步骤:

    我创建了项目和凭据(iOS 应用)Google 控制台; 我确实请求了代码; 我确实请求了访问令牌(运行良好); 在访问令牌到期前 10 分钟,我请求刷新令牌。

问题是间歇性的。有时刷新请求 (refresh_token) 返回“invalid_grant”,因此 access_token 变得无效,我的应用程序就停止了。

如果强制用户登录生成新的 access_token 和 refresh_token 不起作用。我必须撤消该帐户的权限并重试。 我需要的是访问 IMAP 和 SMTP Gmail 。如果我检查 access_token (https://www.googleapis.com/oauth2/v1/tokeninfo) 是否处于活动状态且有效,但 IMAP 和 SMTP 拒绝访问。

我实际上正在考虑返回登录用户名和密码。由于没有相同的反应,该服务非常不稳定。我确定我没有突破任何限制,并且消息“invalid_grant”至少不合适。

请任何 Google 员工帮助我!

谢谢。

【问题讨论】:

我的应用也遇到了同样的问题,试试这个:***.com/questions/21873323/… afaik,您可能需要同步由 google API 维护的 epoch;我曾经经历过这样的案例。 【参考方案1】:

我也遇到过这个问题。我没有对 IMAP 做任何事情,但是在尝试处理身份验证时我经常收到 invalid_grant。最终,我使用以下设置使事情正常进行:

authentication.refreshToken = savedRefreshToken;
authentication.accessToken = savedAccessToken;
authentication.additionalTokenRequestParameters = @@"access_type":@"offline";

我认为主要是最后一个成功了。我在谷歌文档的某个地方找到了它,但我没有保存在哪里。他们的文档非常混乱。

【讨论】:

以上是关于iOS 中的 Google OAuth2 问题 - “invalid_grant”错误的主要内容,如果未能解决你的问题,请参考以下文章

如何修复google OAuth2错误?

Erlang中的Google Oauth2

Apache Oltu Spring Security OAuth2 和 Google 集成

Android Google Play Oauth2 gtalk authToken 的 requestBody 中的正确凭据

为啥 Google Calendar API (oauth2) 以“权限不足”响应?

如何使用 oauth2 并通过 google api 刷新令牌?