我正在进行Google日历集成,除了一件事之外,其他一切都按预期进行:由于某种原因,当用户重定向到同意屏幕时,谷歌首先显示弹出式窗口,要求允许所需的权限:
一旦用户选择“拒绝”或“允许”,就会向用户显示最终同意屏幕,在该屏幕上,他们必须再次单击“允许”或“取消”:
问题是:如何摆脱弹出窗口并确保用户只需单击一次“允许”按钮,就像下面的最后一个引用屏幕快照一样?
经过更多研究,我发现有些Web应用程序需要相同的日历集成,但是没有弹出窗口,用户会直接重定向到最终同意屏幕。
我注意到的另一件事是,在我的情况下,同意屏幕显示复选框,而在引用的Web应用程序中则没有复选框,用户必须单击一次允许或取消(通常,屏幕看起来有些不同):
这是我生成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'],
});
答案 0 :(得分:1)
新屏幕是预期的行为。 Google宣布他们将在2018年推出详尽的权限控制。请参阅https://www.blog.google/technology/safety-security/project-strobe/和https://developers.googleblog.com/2018/10/more-granular-google-account.html。