GWT和AppEngine用户服务

时间:2011-06-29 05:15:58

标签: google-app-engine gwt

我正在使用GAE用户服务来自动化我的GWT应用程序。 根据用户是否已登录,用户将显示LoginPage / Dashboard。

GWT应用程序调用Auth Servlet(Window.Location.assign(“/ googleauth”);导致应用程序卸载,然后将控制权转移到Google身份验证页面,经过身份验证后,我们将被重定向到CallBack servlet。

我可以检查用户是否在Callback Servlet中成功登录。但是,如果我只是重定向回我的应用程序,会话登录就会丢失。

应用程序从头开始加载。

如果我设置了Cookie - >

  

HttpSession session =   request.getSession();               String sessionid = session.getId(); //从中获取sessionID   服务器对您登录的响应   请求               Cookie Cookie =新Cookie(“sid”,sessionid);               response.addCookie(饼干);               response.sendRedirect是(AppURL.getApplicationBaseURL());

在我的客户端代码检查中 - >

  

String sessionID =   Cookies.getCookie( “SID”);   if(sessionID!= null){//显示   仪表板}

我使用安全的方式吗? Cookie有效期多长时间?

1 个答案:

答案 0 :(得分:1)

你说:

I simply redirect back to my application the session login is lost.

这不应该发生。一旦你登录会话应该在那里,直到你注销或会话超时(你可以在GAE设置中设置)。

您只需对服务器进行GWT-RPC调用,然后检查用户是否已登录:UserServiceFactory.getUserService().isUserLoggedIn()

注意:如果您要查找会话cookie,AppEngine会在生产和开发服务器中使用不同的cookie名称。它在制作中使用ACSID Cookie并dev_appserver_login