You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script Web应用访问权限控制失效问题求助

问题根源与解决方法

问题分析

  1. 部署配置错误:你将运行身份设为“我自己”,此时Session.getActiveUser()只会返回部署者(你)的账号,无法获取实际访问用户的邮箱,这是权限判断失效的核心原因。
  2. 代码语法错误:返回无权限提示的HTML标签未闭合,'</p>'误写为'<p>',会导致页面输出异常。
  3. 逻辑缺失:有权限的用户访问时,代码未返回任何有效内容,会造成页面空白。

解决步骤

1. 修改部署配置

重新部署Web应用,将运行身份从“我自己”改为**“以访问用户身份运行”**,这样脚本才能获取到实际访问者的Google账号信息。

2. 修正代码

以下是完整的修正代码:

function doGet() {
  // 指定允许访问的Google账号
  var allowedEmails = ["xxxx1@gmail.com", "xxxx2@gmail.com", "xxxx3@gmail.com"];

  // 获取当前访问用户的邮箱
  var LOGIN_USER = Session.getEffectiveUser().getEmail();

  // 权限判断
  if (!allowedEmails.includes(LOGIN_USER)) {
    return HtmlService.createHtmlOutput('<p>您没有访问权限</p>');
  }

  // 有权限则返回正常内容(可根据需求替换)
  return HtmlService.createHtmlOutput('<p>欢迎访问!</p>');
}
  • 用Session.getEffectiveUser()替代Session.getActiveUser(),在“以访问用户身份运行”模式下能稳定获取访问者邮箱。
  • 修复了HTML标签闭合错误。
  • 补充了有权限用户的返回内容,避免页面空白。
3. 重新部署

保存代码后重新部署Web应用,确保新配置和代码生效。

内容的提问来源于stack exchange,提问作者user17290563

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:40:29