禁用 Google 同意屏幕上的复选框
Posted
技术标签:
【中文标题】禁用 Google 同意屏幕上的复选框【英文标题】:Disable checkboxes on Google consent screen 【发布时间】:2021-02-10 21:09:09 【问题描述】:我们正在使用 Gmail .NET SDK 实现 Gmail 发送 ASP .NET Web 应用程序。
为了做到这一点,我们需要以下所有范围“email”、“profile”、“openid”、 https://www.googleapis.com/auth/gmail.send" 由用户授予我们。
但是,在同意屏幕上,用户可以取消选中“代表您发送电子邮件”复选框,这对我们来说是不可接受的,请参见下文:
我们已经看到很多示例,其中 Google 同意屏幕上没有启用复选框。所以,我们正在努力弄清楚如何在我们的应用程序中隐藏/禁用复选框,您能否建议?
可能是因为我们的申请还没有通过验证,但我不确定是不是这个原因。
【问题讨论】:
您是否在 OAuth 同意屏幕页面中明确定义了您需要的范围?https://console.cloud.google.com/apis/credentials/consent/edit?project=YourProjectID
?
嗨@Rafa,是的,我已经通过您提供的链接明确设置了它。所以,我有“email”、“profile”、“openid”和“../auth/gmail.send”范围。在配置 IAuthorizationCodeFlow 时,我还通过我的后端代码设置了相同的范围。
嗨@JohnyMotorhead。我来自 Google Workspace 支持,正在调查这个问题。您能否提供一个指向您的网络应用 URL 的链接(首先清除应用 ID)以进行调查?
您可能会发现这种方法很有用:***.com/a/69470478/4195337
【参考方案1】:
答案:
这些复选框是由于推出了新的细粒度帐户权限系统,完全正常,无法关闭。
更多信息:
经过一番挖掘,我发现this Google Developers blog post从 2018 年开始讨论,在新的权限系统中,用户将可以单独授予或拒绝权限。
来自博文:
在接下来的几个月中,我们将开始改进我们的 API 基础架构。我们将在其自己的对话框中显示应用程序一次请求的每个权限,而不是在单个对话框中显示所有权限*。用户将能够单独授予或拒绝权限。
*我们不同的登录范围(profile、email和openid都合并在同一个同意中,不需要单独请求。
这似乎仍处于推出阶段,尽管在撰写此答案时距离发布已经过去了 26 个月。
准备改变:
以下是 Google 提供的关于如何准备对 OAuth 和 API 的 Google 帐户权限系统进行更改的指南:
查看Google API Services: User Data Policy 并确保您关注他们。 在进行 API 调用之前,请检查用户是否已授予您应用的权限。这将帮助您避免权限不足错误,这些错误可能导致意外的应用程序错误和糟糕的用户体验。通过参考以下平台上的文档了解更多信息: android 的文档 web 的文档 ios 的文档 仅在需要时请求权限。您将能够在请求每个权限时进行分阶段,我们建议您在上下文中考虑这样做。当用户可能是第一次使用您的应用并且不熟悉应用的功能时,您应该避免在登录时询问多个范围。将多个范围的请求捆绑在一起会使用户难以理解您的应用为什么需要该权限,并且可能会警告并阻止他们进一步使用您的应用。 在请求访问之前提供理由。清楚地解释您为什么需要访问权限、您将如何处理用户的数据以及他们将如何从提供访问权限中受益。我们的研究表明,这些解释提高了用户的信任度和参与度。您可以阅读前面链接的博客文章以获取有关更改的完整信息。
参考资料:
Google Developers Blog: More granular Google Account permissions with Google OAuth and APIs Google API Services User Data Policy | Google Developers GoogleSignIn | Google APIs for Android | Google Developers Google Sign-In javascript client reference Requesting additional scopes after sign-in | Google Sign-In for iOS【讨论】:
以上是关于禁用 Google 同意屏幕上的复选框的主要内容,如果未能解决你的问题,请参考以下文章