如何将OAuth 2.0与Google Apps脚本库一起使用,并使用静态重定向URL



我不知道如何制作一个共享谷歌应用程序脚本库,该库使用OAuth 2.0。

问题是每次我在不同的脚本中使用库时,usercallback重定向URL都会发生变化。然而,这意味着我需要为我在其中使用的每个电子表格添加一个新的应用程序和白名单重定向到Asana的URLhttps://github.com/googlesamples/apps-script-oauth2.

有没有一种方法可以始终使用相同的重定向URL进行身份验证,这样我制作的库就可以从任何脚本中使用,而无需在Asana中注册新的重定向URL?

我是Asana的开发者倡导者。如果我正确理解你的问题,那么是的,你必须为每个脚本分别处理回调。出于安全原因,我们验证OAuth应用程序注册是否注册了与验证时集成实际请求的相同的url。例如,如果这不是真的,那么就有可能创建一个恶意脚本,该脚本使用合法脚本中的client_id,但要求重定向到自己的凭据获取端点。如果在应用程序注册时获得client_id的应用程序还精确指定了要重定向到的合法端点,则此问题已得到解决。这意味着每个OAuth应用程序都需要有自己唯一且一致的重定向URL:(

我想你可以创建一个单独的"路由器"Google Apps脚本,在点击Asana的oauth_authorize端点时,该脚本将使用某个用户/脚本对设置state参数,并在响应返回时将用户凭据转发到基于该用户/脚本的路由器脚本后面的脚本,但这并不是非常简单的。

最后一个选择是使用个人访问令牌访问Asana的API。这一个令牌可以由无限数量的脚本用于访问。缺点是这个令牌"看起来像你",也就是说,它不是代表第三方用户,而是代表你自己采取行动——你的脚本将是他们使用其个人访问令牌的用户的自动版本。通过创建一个"机器人程序帐户"来访问我们的API,并允许其在Asana内部访问您想要收集数据的项目或团队,可以在一定程度上缓解这种情况。这种方法的另一个缺点是,如果您撤销了一个令牌,则每个使用个人访问令牌的脚本都会中断,因此,如果这是故意或意外发生的,你必须更新每个使用它的脚本中的个人访问令牌信息。

希望这能帮助您评估这些选项,并选择其中哪一个选项最适合您的脚本。

最新更新