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

7

大家好,Stackoverflow 社区,

我正在尝试配置一个 Web 应用程序以利用某些 Google 范围。我希望用户可以批准或拒绝所有权限。

这正是我在操作 Google OAuth Playground 时得到的行为:

Google OAuth Playground

可以看到,每个权限都有一个“实心圆”,无法取消选择。用户要么允许访问所有列出的范围,要么拒绝访问所有范围。

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

Scope 1 Scope 2 Consent Screen

虽然这听起来更加细致,但我认为这也更加令人困惑,而且需要扩展我的应用程序逻辑,因为我需要仔细检查是否已授予所有范围的权限。我确实需要这两个权限来完成我的工作,所以只有一个范围对我没有用,我可能需要重新触发授予权限的过程:这实际上是我试图避免的。我的意思是,处理 完全拒绝 的情况没问题,但是部分范围的批准不是我想要的。

解决方案就是模仿 Google OAuth Playground 的操作。

我已在我的同意屏幕配置中显式添加了这些范围(现在处于审核状态)。但仍然出现此行为。

我可能缺少到 oAuth URL 的哪个配置或参数才能获得精确的行为?

谢谢!

1个回答

2

嘿,我已经添加了我使用的范围(仅限drive.appdata,这不是敏感或受限制的),并且也验证了我的应用程序。然而,我仍然看到权限的复选标记(即使最初未选中该复选框)。你有任何想法为什么会出现这种情况吗? - Max
@Max 我也遇到了同样的问题。你找到解决方案了吗? - jmart
1
@jmart 请查看 https://dev59.com/IVIG5IYBdhLWcg3wiAtO#65128371 - Max
1
不要在登录期间请求权限,而是进行普通登录,然后使用 GoogleSignIn.requestPermissions() 请求权限。在使用权限之前,您还需要检查应用程序是否具有所需的权限,可以使用 GoogleSignIn.hasPermissions() 进行检查。 - Max
2
@cSn 晚到了,但感谢您的解决方案:在 OAuth 同意屏幕中,我添加了". / auth / drive",但我忘记添加"email"、 "profile" 和 "openid",因为我认为它们是基本权限。添加它们后,复选框不再出现。 - Inclu Cat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接