我在使用 GWTP 的 Gatekeeper 功能时遇到问题。在示例gwtp-sample-tab之后,我创建了客户端代码。但是现在我仍然想知道如果用户成功登录,如何通知客户端?(我正在使用 Google 用户服务。)
有人可以给我一个小例子吗?
非常感谢!
我在使用 GWTP 的 Gatekeeper 功能时遇到问题。在示例gwtp-sample-tab之后,我创建了客户端代码。但是现在我仍然想知道如果用户成功登录,如何通知客户端?(我正在使用 Google 用户服务。)
有人可以给我一个小例子吗?
非常感谢!
不确定我是否正确理解了您的问题,因为 GWTP 门卫只是出于安全目的而存在(阻止其他用户的管理页面或类似的东西)。使用和 gwtp 注释演示@UseGatekeeper( LoggedInGatekeeper.class )
者将让它只显示给注册用户,所有其他人将被重定向到主页/错误页面。
无论如何,如果您的网站使用 GAE 用户 API(userservice),那么用户将不得不前往 google 的登录页面进行授权,然后返回您的网站。您的站点页面将完全刷新,因此使用此技术和 jsp您可以将用户信息直接保存到主机 jsp 页面中。
然后在主演示者方法中使用类或 JSNIonReset()
获取这些数据并执行以下操作:Dictionary
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