Привратник GWTP и UserService

У меня возникла проблема с использованием функции Gatekeeper GWTP. Следуя примеру gwtp-sample-tab Я создал клиентский код. Но теперь мне все еще интересно, как уведомить клиентскую сторону, если пользователь успешно вошел в систему? (Я использую Google UserService.)

Может ли кто-нибудь привести мне небольшой пример?

Большое тебе спасибо!


person Mark    schedule 30.05.2011    source источник


Ответы (1)


Не уверен, правильно ли я понял ваш вопрос, потому что привратники GWTP существуют только в целях безопасности (блокировать страницы администратора от других пользователей или что-то подобное). Аннотировать докладчиков с помощью @UseGatekeeper( LoggedInGatekeeper.class ) и gwtp позволит показывать только зарегистрированным пользователям, все остальные будут перенаправлены на домашнюю страницу/страницу ошибок.

В любом случае, если ваш сайт использует GAE Users API (userservice), пользователям придется перейти на страницу входа в Google для авторизации, а затем вернуться на ваш сайт. Страница вашего сайта будет полностью обновлена, поэтому используйте эту технику и jsp вы можете сохранить информацию о пользователе прямо на хост-jsp-странице.

Затем в методе основного презентатора onReset() получите эти данные, используя класс Dictionary или JSNI, и сделайте что-то вроде этого:

email = JSNIUtils.getEmail(); 
  // or
  // Dictionary info = Dictionary.getDictionary("info");
  // String email = info.get("email");
loginUrl = JSNIUtils.getLogInUrl();
logoutUrl = JSNIUtils.getLogOutUrl();

if (email != null && logoutUrl != null) {
      // user logged in -> show his email & log out link
    getView().getUserNameAnchor().setText(email);
    getView().getLogInOutAnchor().setText("Log out");
    getView().getLogInOutAnchor().setHref(logoutUrl);
} else if (loginUrl != null) {  
      // unknown user -> show welcome & log in link
    getView().getUserNameAnchor().setText("Hello Stranger");
    getView().getLogInOutAnchor().setText("Log in");
    getView().getLogInOutAnchor().setHref(loginUrl);
} // something else 
person Ilia Akhmadullin    schedule 04.06.2011
comment
Вы можете увидеть, как использовать привратник gwtp coffeewithcode.com/2011/08/25/ - person Sanjay Jain; 25.08.2011