背景:
这是关于使用使用 Google App 脚本创建的 Gmail 插件。当用户安装插件时,会出现 OAuth 同意屏幕,用户在其中同意允许“向用户显示产品名称”(如 OAuth 屏幕中配置的那样)允许指定的访问权限。
现在,我读到:https ://developers.google.com/identity/protocols/CrossClientAuth
其中指出:
当用户在特定范围内授予对您的应用程序的访问权限时,该用户正在查看用户同意屏幕,其中包括您在 Google API 控制台中设置的项目级产品品牌。(有关设置同意屏幕的信息,请参阅 API 控制台帮助中的设置 OAuth 2.0。)因此,Google 认为,当用户向项目中的任何客户端 ID 授予对特定范围的访问权限时,该授予表明用户的信任该范围的整个应用程序。
现在,我有一个服务器 Web 组件(一个 lambda)(属于同一产品),它需要访问用户的电子邮件,该访问权限与用户在安装插件后提供的相同访问权限(“授权访问”按钮)。
问题) :
在我的情况下,有没有办法让跨客户端(后端服务器和 gmail 插件)让后端只访问用户的数据而不触发额外的(基本上是用户同意的任何内容)?
注意:使用使用 GAS OAuth 库手动触发的附加授权屏幕,我能够获得传递给服务器的“身份验证代码”,服务器现在可以使用该代码访问同意的数据(我们使用了相同的客户端 ID 和秘密)。但是,这种方法的问题是:
- 用户收到 2 封有关授予权限的电子邮件。插件和手动触发的流程。
- 用户必须授权 gmail 插件进行首次访问,然后我手动触发另一个。即使有一种方法可以在用户安装插件时获得“验证码”也可以。
提前道歉,有很多零散的文档,虽然我经历了很多,但很可能我错过了一些东西。