Google oAuth2-同意屏幕和多余的弹出窗口

时间:2019-05-18 19:34:12

标签: node.js google-api google-oauth2

我正在进行Google日历集成,除了一件事之外,其他一切都按预期进行:由于某种原因,当用户重定向到同意屏幕时,谷歌首先显示弹出式窗口,要求允许所需的权限:

enter image description here

一旦用户选择“拒绝”或“允许”,就会向用户显示最终同意屏幕,在该屏幕上,他们必须再次单击“允许”或“取消”:

enter image description here

问题是:如何摆脱弹出窗口并确保用户只需单击一次“允许”按钮,就像下面的最后一个引用屏幕快照一样?

经过更多研究,我发现有些Web应用程序需要相同的日历集成,但是没有弹出窗口,用户会直接重定向到最终同意屏幕。

我注意到的另一件事是,在我的情况下,同意屏幕显示复选框,而在引用的Web应用程序中则没有复选框,用户必须单击一次允许或取消(通常,屏幕看起来有些不同):

enter image description here

这是我生成authUrl的代码:

    //"googleapis": "^39.2.0",

    const {google} = require('googleapis/build/src/index');

    let oauth2ClientGlobal = new google.auth.OAuth2(
        "{{clientId}}",
        "{{clientSecret}}",
        "https://example.com/calendarCallback"
    )
    let authUrl = oauth2ClientGlobal.generateAuthUrl({
        access_type: 'offline',
        scope: ['https://www.googleapis.com/auth/calendar.events'],
    });

1 个答案:

答案 0 :(得分:1)

新屏幕是预期的行为。 Google宣布他们将在2018年推出详尽的权限控制。请参阅https://www.blog.google/technology/safety-security/project-strobe/https://developers.googleblog.com/2018/10/more-granular-google-account.html