Google 애플리케이션 스크립트에 애플리케이션을 구축 중입니다. 나는 logonid가 응용 프로그램을 사용할 수 있는지 확인하여 도메인 사용자를 인증합니다. 테스트 단계에 진입했을 때 실제로 응용 프로그램을 사용할 수있는 유일한 사용자였습니다. 웹 앱 게시 마법사에서 "누구에게 액세스 권한이 있습니까?"콤보 상자를 "모든 사용자"에게 설정했지만.사용자가 애플리케이션에 액세스 할 수 없음
사용자가 응용 프로그램을 실행할 때 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};
}
}
"누구든지"실행할 수 있습니다. "앱 실행"필드를 무엇을 설정 했습니까? 나는 "앱에 액세스하는 사용자"라고 상상합니다. doGet() 이후의 첫 번째 기능은 무엇입니까? 스프레드 시트를 호출 하시겠습니까? – miturbe
예, miturbe의 메모에 따르면 코드에서 액세스하는 사용자는 액세스 권한이없는 것으로 보입니다. 사용자가 액세스 할 수없는 리소스 (파일, 스프레드 시트 등)에 액세스 할 수 있기 때문에 웹 응용 프로그램에 액세스 할 수 있지만 아무 것도 할 수 없습니다. –
It MySQL 데이터베이스에 액세스하여 사용자가 스크립트에 액세스 할 수 있는지 확인합니다. 또한'User' 클래스를 사용하여 사용자 이름에 액세스합니다. 실제로이 입력란은 '사용자가 앱에 액세스하는 중'으로 설정됩니다. – Feanaro