仅适用于 Google Workspace 用户的 Google Picker API

问题描述

您好,我希望我们组织的用户只能使用谷歌选择器从他们的谷歌驱动器中选择文件

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

以下是我所做的总结:

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

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

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

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

解决方法

这是一个高层次的解释,但思想如下:

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

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

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

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

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