【问题标题】:Google Picker API for Google Workspace users only仅适用于 Google Workspace 用户的 Google Picker API
【发布时间】:2021-02-24 13:05:33
【问题描述】:

您好,我希望我们组织的用户仅使用 google 选择器从他们的 google 驱动器中选择文件。

我按照this的例子在google开发者控制台中设置了API key和oAuth客户端。

这是我所做的总结:

  • 在 Google API 控制台中启用了 Google Picker API
  • 已创建 API 密钥
  • 已创建 OAuth 客户端

使用Official Example google picker 可以正常工作,但它也允许所有 Gmail 用户,我只想允许那些属于我的域的电子邮件。

我在官方文档中找不到与此相关的任何内容,所以我有以下问题:

  1. 有可能吗?
  2. 是否可以使用服务帐户模拟(通过模拟在服务器上生成用户访问令牌)绕过同意屏幕?

【问题讨论】:

  • 1.是的,有可能。 2. 是的,这是可能的。
  • @Morfinismo 感谢您的帮助。通过在服务器端为用户生成访问令牌,我可以避免同意屏幕。但是如果用户未登录,选择器对话框将不起作用,我在弹出窗口中收到以下消息“为了从您的在线存储中选择一个项目,请登录。”。有什么办法可以避免吗?
  • 我还没有检查。我会在周末做一些测试,如果到那时你还没有得出结论,我会回来提供我的意见。
  • 非常感谢@Morfinismo,期待您的回音。
  • 希望你做得很好@Morfinismo,我之前报告的问题是在部署后在开发环境(localhost)上发生的,我不再收到该错误消息。感谢您的帮助。

标签: javascript google-api google-picker


【解决方案1】:

这是一个高级别的解释,但想法如下:

  1. 使用服务器端脚本,您将使用service account 和impersonation 为用户生成令牌。

  2. 在客户端,您必须在服务器端调用该脚本并让服务器返回令牌。

  3. 初始化选择器时,您将使用PickerBuilder.setOAuthToken() 方法将令牌设置为您从服务器收到的内容。

这样您不仅可以绕过同意屏幕,还可以确保驱动器选择器显示您使用服务帐户进行身份验证的用户的驱动器文件。

如果您正在寻找低层次的解释,请编辑您的问题并将您的架构与您的代码一起发布。

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    相关资源
    最近更新 更多