Google app script web app,如何创建登录按钮?

the*_*dor 5 google-sheets google-apps-script google-oauth

我在 Google Drive 中创建了由 Google 电子表格支持的脚本并将其发布为网络应用程序,设置“以我的身份执行应用程序”和“谁有权访问该应用程序:任何人,甚至匿名”。主页提供来自电子表格的 html 内容。

基本功能是:“随机互联网用户”可以看到一些信息,而用他的谷歌账户登录的用户也可以提交信息。

问题是 - 如果我将权限设置为“任何人”,人们首先会被重定向到标准的谷歌登录页面,一旦登录就必须接受脚本权限。完成后,只要您使用 Google 帐户登录,导航到网络应用程序就会提供“已登录用户”版本。

但是 - 如果网络应用程序设置为允许“匿名用户”,则似乎没有任何(至少是明显的方式)允许匿名用户登录并接受应用程序权限。

到目前为止我尝试过的:

  • 如果 Web 应用程序要求用户登录,则指向 url 的链接 google 会将我重定向到如果我未登录。这可行,但我觉得这不是正确的方法,而且一旦登录,就没有办法注销或切换帐户;好像登录后就永远登录了
  • 使用https://developers.google.com/apps-script/reference/script/authorization-info#getAuthorizationUrl()来获取 auth url - 但我不知道如何使用它返回的 url(导航用户到顶部框架上的网络应用程序框架中的该页面都会导致空白页面)

如何获得登录(可能还有切换登录)网址以允许匿名用户登录我的 Web 应用程序?

Bry*_*n P 1

为 2 个 .gs Web 应用程序项目创建了示例代码: - 无身份验证,以所有者身份运行,匿名可以访问 - 需要身份验证,以用户身份运行,任何人都可以访问

...因为我不知道您的“我可以将用户重定向到 URL”语句在代码中是什么样子。

第一个文件有一个带有单击侦听器的按钮,用作登录按钮,但它只是要求进行更改window.top.location.href。第二个应用程序用于ScriptApp.invalidateAuth();在通过客户端按钮单击调用后注销用户。

演示- 第一个 Web 应用程序 URL

我仍然投票选择只提供第二个网络应用程序作为在新窗口中弹出的链接,正如我在评论中指出的那样,上面的设置迫使用户每次以及注销后重新授权。