Google Apps 脚本 - 服务器端身份验证

Google Apps Script - Server Side Authentication

我想将 GAS 脚本用作某种网络服务。基本上,我想 post 一些参数,然后使用 Drive 服务对 Google Doc 进行一些操作,所有这些都必须从后端完成,而无需使用浏览器。现在我遇到身份验证问题 - 当我将 GAS 部署为 Web 应用程序时(以用户访问应用程序的身份执行应用程序,任何人都可以访问应用程序),当尝试通过 Http 请求执行脚本时,我得到 Google 登录响应( /accounts/ServiceLogin)。显然,用户必须对访问进行身份验证。那时我无法确定我们是否可以申请 OAtuh。所以我的问题是 - 可以做些什么来实现这一目标?是否有任何机制可用于从服务器端验证 GAS?还是我被迫使用带有 GAS 的浏览器?

您可以在 Apps 脚本代码中进行自己的身份验证检查。您不会对发布进行任何安全设置,但会在 Apps 脚本代码中实施您自己的密码检查。您可以将发布“ 的方式执行应用程序:”设置设置为 ME,并将设置“谁有权访问应用程序:"给任何人,甚至是匿名的。这允许任何人在没有身份验证的情况下 运行 应用程序。然后通过在 URL 搜索字符串中传递密码来创建您自己的身份验证。

即使在 URL 搜索字符串中输入密码是通过 HTTPS 连接加密的,它仍然被视为 "bad practice",因为搜索字符串可以以纯文本形式存储在浏览器历史记录中。但是您不会使用浏览器。

因此,您的 Apps 脚本应用将从 URL 中读取搜索字符串参数,并允许脚本为 运行 或不允许。您将实施自己的身份验证系统。 但是您需要评估并确定您的服务器上的安全性,或者发送请求的任何服务器。如果您可以使用 URL 搜索字符串中的密码向 Apps 脚本发送 HTTPS 请求,并且这对您的服务器或发送 HTTPS 请求的任何服务器都不是安全问题,那么您可以考虑并做出你的决定。

如果您希望在不在浏览器中打开任何内容的情况下从 Apps 脚本向您的服务器返回响应,请使用内容服务:

Google Documentation - Content Service