我正在使用Google Apps脚本构建应用程序。我正在通过检查是否允许他们的logonid使用该应用程序来验证域用户。 我开发了它,当我进入测试阶段时,我是唯一可以实际使用该应用程序的用户。 虽然我已经在web-app发布向导上将“Who have Access”组合框设置为“任何人”。
当用户执行应用程序时,他会得到一个异常,说他在doGet()之后执行第一个函数时没有访问权限。我是否忽略了某些设置或者我做错了什么?
我使用以下类:
UserManager
Session
Jdbc
Utilities
Logger
这是在doGet()函数之后调用的函数:
function authenticateUser() {
try {
var user = UserManager.getUser(Session.getActiveUser());
Logger.log('User: ' + user.getEmail());
if (user == undefined || user == null) {
return {authenticated: false};
} else {
var auth = _getAuth();
if (!auth.isAuthorized(user.getEmail())) {
Logger.log('Not authorized in database.');
return {authenticated: false};
} else {
var profile = auth.getProfile(user.getEmail());
authenticated = true;
auth.setLogin(user.getEmail());
if(!profile.firstLogin) {
activeProfile = profile;
}
activeUser = user;
return {profile: profile, authenticated: true};
}
}
} catch(ex) {
Logger.log(ex);
return {authenticated: false};
}
}
答案 0 :(得分:1)
此处是访问UserManager
的问题。作为documentation州,UserManager
仅供管理员访问。
如果应用程序以普通用户身份运行,则无法访问UserManager。您可能需要重新部署部署/代码以自行运行(或管理员)。