Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 是否可以在Google应用程序脚本web应用程序中使用多个身份验证?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 是否可以在Google应用程序脚本web应用程序中使用多个身份验证?

Google apps script 是否可以在Google应用程序脚本web应用程序中使用多个身份验证?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我知道如何编写web应用程序并以自己的身份发布。我想做的是发布一个web应用程序,这样它就可以访问我的数据和用户数据 例如,web应用程序将从I拥有的工作表中读取数据,然后将其添加到用户拥有的工作表中 我意识到一种方法是让任何人都可以通过链接访问我的工作表,并让web应用程序在用户的上下文中运行。当用户查看web应用程序时,它将在用户的上下文中运行,因此它可以访问他们的工作表,并且由于任何人都可以通过链接查看我的工作表,因此它将能够访问我的工作表 但是,我试图做到这一点,而不是让任何有链接的人都

我知道如何编写web应用程序并以自己的身份发布。我想做的是发布一个web应用程序,这样它就可以访问我的数据和用户数据

例如,web应用程序将从I拥有的工作表中读取数据,然后将其添加到用户拥有的工作表中

我意识到一种方法是让任何人都可以通过链接访问我的工作表,并让web应用程序在用户的上下文中运行。当用户查看web应用程序时,它将在用户的上下文中运行,因此它可以访问他们的工作表,并且由于任何人都可以通过链接查看我的工作表,因此它将能够访问我的工作表

但是,我试图做到这一点,而不是让任何有链接的人都可以访问我的工作表

这可能吗?

解决方案#1:两个web应用程序 使用两个web应用程序并处理这两个应用程序之间的身份验证:

  • WebApp#1:访问工作表的API

    • 以“我”的身份执行
    • 访问权限:“任何人,甚至匿名”
    • 处理传入的POST请求:检查必要的授权,验证请求并从工作表返回数据
  • WebApp#2:面向用户的应用程序

    • 以“访问web应用程序的用户”身份执行
    • 访问:“任何人”
    • 用户从工作表>客户端请求服务器请求数据(
      google.script.run
      )>服务器使用
      UrlFetchApp
      >发送请求和必要的授权头,接收和解析工作表数据并将其提供给客户端
  • 注意事项:

    • 此设置的安全性仅与web应用之间使用的授权/身份验证一样强
解决方法2:客户端谷歌登录
  • 在您的webapp中实现谷歌登录

    • 以“我”的身份执行
    • 访问权限:“任何人,甚至匿名”
    • 访问web应用的用户必须登录
    • 在登录并授权访问他们的工作表后,您可以使用工作表api写入他们的工作表
  • 参考文献:


@imthenanchoman还有第三个选项(尽管更复杂),您可以利用服务帐户访问您的工作表,而不会牺牲隐私。一个缺点是这种方法需要GCP项目。然而,可能有一个漏洞,你可以利用。服务帐户不需要绑定到您公司的GSuite域,因此可以使用单独的非公司帐户创建服务帐户并在项目中使用。“你认为你的公司会同意吗?”“不会。我很肯定那会让我被炒鱿鱼。但我会调查的。我必须先了解如何创建服务帐户。