Из JS приложения (клиентская часть приложения написана на JS, а серверная на Java и технологиях Google App Engine) необходимо разлогинить пользователя, который залогинился через аккаунт Google. Для этого необходимо создать jsp файл и в нем подключить классы для работы с авторизацией пользователя
Код в JS файле
Код, который перекинет пользователя на logout.jsp
Получим UserService и создадим переменную url, на которую будем перекидывать пользователя который разлогинился. Проверяем, если мы уже задеплоили проект на сервер Google (SystemProperty.Environment.Value.Production), тогда url получает значение - имя приложения на сервере. Если же мы запустили проект локально, то ссылка и останется localhost:8888. После того как определились со значением переменной url, редиректим пользователя по этой ссылке.
Файл logout.jsp
- com.google.appengine.api.users.UserServiceFactory
- com.google.appengine.api.users.UserService
- com.google.appengine.api.utils.SystemProperty
Код в JS файле
Код, который перекинет пользователя на logout.jsp
location.assign("/logout.jsp")
Получим UserService и создадим переменную url, на которую будем перекидывать пользователя который разлогинился. Проверяем, если мы уже задеплоили проект на сервер Google (SystemProperty.Environment.Value.Production), тогда url получает значение - имя приложения на сервере. Если же мы запустили проект локально, то ссылка и останется localhost:8888. После того как определились со значением переменной url, редиректим пользователя по этой ссылке.
response.sendRedirect(us.createLogoutURL(url + "/login.jsp?force"));
Файл logout.jsp
<%@ page import="com.google.appengine.api.users.UserServiceFactory"%> <%@ page import="com.google.appengine.api.users.UserService"%> <%@ page import="com.google.appengine.api.utils.SystemProperty"%> <% UserService us = UserServiceFactory.getUserService(); String url = "http://localhost:8888"; if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) { if (SystemProperty.applicationId.get().contains("production")) { url = "https://production-version-of-app.com"; } else { url = "https://" + SystemProperty.applicationId.get() + ".appspot.com"; } } response.sendRedirect(us.createLogoutURL(url + "/login.jsp?force")); return; %>