Поиск по этому блогу

четверг, 22 января 2015 г.

JavaScript + JSP + Redirect

Из JS приложения (клиентская часть приложения написана на JS, а серверная на Java и технологиях Google App Engine) необходимо разлогинить пользователя, который залогинился через аккаунт Google. Для этого необходимо создать 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;
%>

Комментариев нет:

Отправить комментарий