我正在 Google Apps 脚本中构建一个应用程序。我通过检查是否允许他们的 logonid 使用应用程序来验证域用户。我开发了它,当我进入测试阶段时,我是唯一可以实际使用该应用程序的用户。尽管我已将网络应用发布向导上的“谁有权访问”组合框设置为“任何人”。
当用户执行应用程序时,在执行 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};
}
}