【问题标题】:Google Oauth pre-select scopesGoogle Oauth 预选范围
【发布时间】:2021-11-30 21:01:21
【问题描述】:

我的应用调用 Google Oauth(该应用是在 Google Cloud 控制台中设置的)。当用户看到 Google Oauth 同意屏幕时,例如,批准访问 adwords api 时,是否有控制范围预选的方法?

希望能够访问预先选择的 Google 广告词,然后用户(如果他们愿意的话)取消选择它?

是否可以通过编程方式或通过 Google Cloud 控制台中的设置对其进行任何级别的控制?

问题在于,就目前而言,当用户第一次看到 Google Oauth 窗口时,会显示应用程序要求的范围,它们是未勾选的复选框,根据我的经验,很多用户忘记勾选它们,但应用程序依赖于对它们的访问。

如上图所示,对于某些范围,我需要明确单击以允许应用访问。

另外,以上是为了表明我已获得此类范围的批准。

我见过一些其他应用程序,它们只是作为事实呈现给用户(该应用程序需要这些范围,用户无法取消选择它们)

【问题讨论】:

    标签: google-cloud-platform google-api google-oauth scopes


    【解决方案1】:

    如果您的用户选择不点击复选框,那么除了再次请求同意外,您无能为力。如果您的应用程序仍然需要此范围,那么它应该再次请求用户访问,直到他们选择单击复选框或不使用您的应用程序。

    请看More granular Google Account permissions with Google OAuth and APIs

    复选框与圆圈

    您可以通过在项目的同意屏幕中进行设置,将您的应用程序配置为需要特定范围。当向用户显示同意屏幕时,此处添加的任何范围都应显示为圆圈而不是复选框。

    请注意,这在一段时间前有效,我不确定它是否仍然有效。

    【讨论】:

    • 您好 DalmTq,我添加了几张图片来更好地说明我的体验。它表明我已获得范围的批准。但是,在用户与应用程序的第一次交互时,他们会看到广告词被取消选择(在任何后续交互中,不需要再次选择)。但是 - 许多用户没有勾选它。我想知道是否有任何控制级别...
    • 没有比你已经完成的更多了。需要为用户提供是否授予您访问权限的选项。如果他们选择不这样做,那么您唯一的选择是再次请求,或者如果您的应用程序可以在没有它的情况下运行,但通知他们您需要更多权限才能正常运行。
    【解决方案2】:

    Google 同意屏幕由 Google 的授权服务器创建。你无法控制它。除了上面显示的姓名和电子邮件地址。当您在请求中添加范围时,Google 将向用户请求适当的许可,以提供接受或不接受的选项。同意屏幕发生了很多变化。

    如果用户没有勾选复选框,您需要再次请求同意。如果您的应用仍然需要范围,那么它应该再次请求用户访问,直到他们勾选复选框。

    Google 无法为用户预先选择范围,因为用户需要完全控制要授予的权限。也就是说,如果用户点击 “继续” 按钮而不选择任何权限,然后会弹出一个警告弹出窗口,要求用户确认他们的意图。

    参考OAuth API verification FAQsGoogle sign-in docs

    【讨论】:

    • “Google 无法为用户预先选择范围,因为用户需要完全控制要授予的权限。” - 如果复选框被预先选中,用户仍然可以取消选中它们。所以他们仍然可以完全控制。这对用户会更友好,因为需要的点击更少。
    猜你喜欢
    • 2014-09-16
    • 2019-07-07
    • 2018-04-30
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    相关资源
    最近更新 更多