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

Posted

技术标签:

【中文标题】如何将 Google OAuth 同意屏幕配置为不显示复选框?【英文标题】:How can I configure Google OAuth consent screen to not show checkboxes? 【发布时间】:2020-07-12 04:56:53 【问题描述】:

您好 *** 社区,

我正在尝试配置一个网络应用程序以使用某些 Google 范围。我希望用户要么全部批准,要么全部拒绝。

这正是我在玩 Google OAuth Playground 时遇到的行为:

看,每个范围都有一个不能取消选中的“实心圆圈”。 用户要么允许访问所有列出的范围,要么拒绝访问所有范围。一次完成。

但在我的应用程序中,每个权限都映射到一个可以允许DENIED的弹出窗口。此外,最后会显示相同的同意屏幕,但用户可以选择/取消选择某些权限。 (复选框)

尽管这听起来可能更细化,但我认为这也有点令人困惑,而且它扩展了我的应用程序中的逻辑,因为我需要仔细检查是否已授予所有范围的权限。我确实需要他们两个来做我需要做的事情,所以,只有一个范围对我没有用,我可能需要重新触发授予权限过程:这实际上是我试图避免的。我的意思是,处理 完全拒绝 的情况是可以的,但我不希望部分范围获得批准。

解决方案是模仿 Google OAuth Playground 的做法。

我已在我的同意屏幕配置中明确添加了范围(现在的数字正在审查中)。但我仍然有这种行为。

为了获得确切的行为,我可能缺少 oAuth url 的哪个配置或参数?

谢谢!

【问题讨论】:

【参考方案1】:

事实证明,在添加了我需要的特定范围之后:

https://console.cloud.google.com/apis/credentials/consent/edit?project=YourProjectID

过了一会儿...我开始看到带有实心圆圈而不是可选复选框的同意屏幕!

【讨论】:

嘿,我已经添加了我使用的范围(仅drive.appdata,它不敏感或不受限制)并验证了我的应用程序。但是,我仍然不断看到权限的复选标记(最初甚至未选中复选标记)。你知道为什么会这样吗? @Max 同样的事情发生在我身上。你找到解决办法了吗? @jmart 查看***.com/questions/64573910/… 我没有在登录时请求权限,而是在正常登录后使用GoogleSignIn.requestPermissions() 请求权限。您还需要在使用之前检查您的应用是否具有所需的权限,您可以使用GoogleSignIn.hasPermissions() @cSn 迟到的评论,但感谢您的解决方案:在 OAuth 同意屏幕中,我添加了“./auth/drive”,但我忘记添加“email”、“profile”和“openid”,因为我认为它们是基本权限。添加后,复选框不再出现。

以上是关于如何将 Google OAuth 同意屏幕配置为不显示复选框?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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