尝试在 google oauth 中为同意屏幕注册应用程序时出现问题

Posted

技术标签:

【中文标题】尝试在 google oauth 中为同意屏幕注册应用程序时出现问题【英文标题】:Issue when trying to register an app for consent screen in google oauth 【发布时间】:2021-01-04 23:00:27 【问题描述】:

我正在尝试为我的应用注册 Oauth 同意屏幕,以便我可以创建 OAuth 客户端 ID。即使我已正确提交所有内容,我仍会在表单末尾收到此验证错误。

保存您的应用时出错

并且此错误并未说明表单中的哪个输入无效。同样在开发工具窗口的网络选项卡中,每次我提交请求时,我都可以看到正在启动一个 POST 请求,并且它失败并出现以下错误。

"error":"code":3,"message":"The request failed because one of the field of the resource is invalid.","details":["@type":"type.googleapis.com/google.rpc.PreconditionFailure","violations":["type":"client_auth_config","subject":"?error_code=9&error_field_name=UpdateBrandWithMaskRequest.brand_id&error_field_value=0"]].

非常感谢任何有关如何解决此问题的建议。我也已经就这个问题联系了谷歌支持,但截至目前,他们说一切正常,并清除缓存和 cookie,但它不起作用。我在这里附上了我正在使用的同意配置向导的捕获。

【问题讨论】:

您能否验证您的用户是否拥有Oauth Consent Creator 角色和Oauth Creator 角色? 我正在使用项目的所有者帐户来创建同意屏幕,因此我假设我拥有必要的权限。 检查您的电子邮件中是否有任何来自 Google 的邮件,尤其是来自 Trust & Safety 团队的邮件。如果团队发送电子邮件要求您提供更多信息,您的验证可能会被暂停。验证您的垃圾邮件箱。 我没有查看任何电子邮件,支持案例仍在进行中,没有解决方案。 您好,我也遇到了同样的问题。大约一周前做了同样的过程,这很好 - 在“同意屏幕”的新布局之前。他们的错误消息甚至没有说明错误的字段是什么,而且他们的文档已经过时了! 【参考方案1】:

将项目 ID 放在应用名称中

【讨论】:

它确实有效,这很奇怪。谢谢。 这行得通,这似乎是谷歌方面的一个错误。 这是我很长一段时间以来见过的最可悲的错误。不仅如此,现在是 21 年 11 月(两年半后),这仍然是一个问题,完全没有迹象表明问题是什么。感谢您的提示 进一步深入研究,这可能只能解决问题,因为所使用的名称由于某种原因未能通过其中一项检查。项目 ID 保证是有效的应用程序名称,因此此解决方法将始终解决问题。我建议您查看对单击“保存并继续”时发送的请求的响应,该响应可能包含更具描述性的错误消息,将指导您修复应用程序名称。 我在下面发布了一个解释作为答案。【参考方案2】:

尝试将您的支持电子邮件添加到 Firebase 控制台。转到firebase控制台->设置->常规->支持电子邮件->添加电子邮件。现在,在创建 oAuth 同意屏幕时,添加相同的电子邮件 ID 开发人员联系信息以及支持电子邮件。它对我有用。

【讨论】:

【参考方案3】:

@Kalind 所说的帮助我解决了问题。 所以登录firebase console,选择您也尝试创建 OAuth 同意的项目。然后单击设置-> 常规-> 支持电子邮件-> 从下拉列表中添加电子邮件。 现在,当我在 Oauth 同意屏幕下返回 google cloud console 时,我可以看到我已经在该项目中注册了一个。

【讨论】:

【参考方案4】:

为了扩展最重要的答案,应用注册的这一步失败的根本原因有很多。在应用程序名称无效的情况下(未通过 Google Cloud Platform 强制执行的任何检查),那么将应用程序名称设置为项目 ID 可以保证解决问题,因为项目 ID 总是碰巧是有效的应用程序名称。

可能值得深入研究底层验证错误,这可以通过检查提交表单时发送的网络请求来实现。在开发者工具的“网络”选项卡中,选择点击“保存并继续”按钮后捕获的 POST 请求。 “响应”选项卡(我的情况如下所示)应该显示一个带有更具描述性消息的错误对象。

就我而言,应用程序名称似乎被视为滥用:

请求已被归类为滥用,不允许继续。

我怀疑是因为它包含“Google”这个词。

【讨论】:

【参考方案5】:

我得到了完全相同的错误,可能是他们的问题:/

【讨论】:

【参考方案6】:

感谢大家报告此事。对于不同的应用程序,我也遇到了同样的问题,@Kalind 建议解决了这个问题。在 Firebase 项目的设置中,现在有一个名为“支持电子邮件”的新字段,您可以在其中选择您的支持电子邮件地址。这将像@Kalind 和@Kasper 所说的那样解决您的问题。我只是添加了一个屏幕截图,以便那些有同样问题的人更清楚。 谢谢!

【讨论】:

【参考方案7】:

对我来说,那里已经有一封电子邮件(帐户电子邮件的所有者)。 我必须邀请另一封电子邮件 > 接受邀请 > 更改电子邮件 > 保存 > 然后改回 > 然后我可以继续 OAuth 同意屏幕。

要更改 Firebase 控制台上的支持电子邮件,请访问: https://console.firebase.google.com/ > 选择 Cog > 项目设置 > 常规选项卡 > 支持电子邮件

【讨论】:

【参考方案8】:

我访问此页面是因为测试 Google 登录。 我在创建“OAuth 同意屏幕”时遇到了这个问题。 但我不需要这个来创建。 只需转到“域验证”页面和“添加域”。 您可能需要在 DNS 设置中添加“txt 记录”以证明您拥有该域。 添加域后,进入“Credentials”页面。 可以像谷歌指南一样选择“应用类型” !!!请享受!!!

【讨论】:

【参考方案9】:

我在 OAuth 同意屏幕设置页面中使用了应用 ID 作为我的应用名称。

【讨论】:

【参考方案10】:

如果您尝试在应用许可/Firebase 支持中使用来自 gsuite 的群组电子邮件,则您必须是群组所有者,并且在任何 IAM 角色中都不需要该群组电子邮件地址。

【讨论】:

以上是关于尝试在 google oauth 中为同意屏幕注册应用程序时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏服务不工作... 是不是需要 OAuth 同意屏幕?

使用 Google Fit 的 Android 应用程序中的 OAuth 同意屏幕为空白

由于同意屏幕,无法创建 Google oAuth 客户端 ID

如何将 Google OAuth 同意屏幕配置为不显示复选框?

Android 中的空白 Google 登录 OAuth 同意屏幕

OAuth 同意屏幕的待定开发人员操作