我正在使用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有效期多长时间?
答案 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
。