【问题标题】:Google consent screen. Permissions without refreshing page谷歌同意屏幕。不刷新页面的权限
【发布时间】:2018-12-25 23:08:00
【问题描述】:

我在我的项目中使用 Gmail api 和 Google Calendar api。我对这些 api 所需的权限有疑问。

要求:假设我此时没有授予任何国王的权限。

  1. 如果我使用的是 Gmail api,那么它应该只询问与 gmail 相关的权限。
  2. 我正在使用 Calendar api,那么它应该只询问与日历相关的权限。

它按照我的要求工作,但有一个问题。

问题:假设我在同一页面上有两个按钮,一个用于 gmail,另一个用于日历。 我首先点击了gmail按钮,它提示我登录并询问gmail相关权限,但我没有授予权限,而是取消了它,然后点击了日历按钮,这里只询问gmail相关权限,一旦我刷新页面,然后它将请求日历许可。

问题:如何让我的网站在不刷新页面的情况下请求正确的许可。

我正在使用 react-google-login npm。

【问题讨论】:

    标签: oauth google-api google-oauth google-authentication


    【解决方案1】:

    您应该将您的应用程序视为一个单独的实体。它应该只要求用户登录一次。

    如果您要运行的应用同时需要 gmail 和 google 日历权限,那么您应该同时请求 gmail 和 google 日历权限。

    话虽如此,说请求 gmail 范围是可能的,有时值得疯狂地说,然后如果用户想使用说你的应用程序的另一部分,它需要日历范围到 request additional scopes,来自此的响应应该包含 gmail 和日历权限,但这仍然需要弹出授权窗口并且他们同意。

    回答:如果不向用户显示同意屏幕并刷新您网站上的访问权限,就无法请求用户授权。

    【讨论】:

    • 我只想在用户想要使用该特定功能时请求许可。假设用户想要添加提醒或安排任务,那么我的应用程序会询问您是否要将其添加到您的日历中。此时请求日历权限并提示使用以适当权限登录是有意义的。
    • 一切正常。如果我们继续评论示例,假设用户已授予日历权限,现在他也想使用 gmail 功能,当同意屏幕弹出时,此时它应该要求日历和 gmail 权限,但它却要求日历只有许可。如果我刷新页面,它将开始要求日历和 gmail 权限。
    • 那么您应该查看incremental scopes 这样当用户需要日历时,您将可以请求日历,其中包括已授予的 gmail 范围。它基本上是一种向您已有的权限添加额外权限的方法。
    猜你喜欢
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2014-07-27
    • 2012-08-14
    • 1970-01-01
    • 2020-10-14
    • 2015-02-13
    相关资源
    最近更新 更多