Я создаю приложение в Google Apps Script. Я проверяю пользователей домена, проверяя, разрешено ли их 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};
}
}
так что «кто-нибудь» может его выполнить, что вы установили в поле «Execute App As»? Я предполагаю, что «пользователь обращается к приложению». Что делает первая функция после doGet()? вызвать таблицу? – miturbe
Да, за заметку о милурбе вы, скорее всего, что-то делаете в коде, к которому пользователь доступа не имеет доступа. Они могут получить доступ к веб-приложению, но не смогут ничего с ним делать, поскольку могут обращаться к ресурсам (файлам, таблицам и т. Д.), К которым пользователь не может получить доступ. –
Он Доступ к базе данных MySQL и проверяет, имеет ли пользователь доступ к скрипту. Я также использую класс 'User' для доступа к имени пользователя. В самом деле поле установлено в «Пользователь, получающий доступ к приложению». – Feanaro