谷歌应用程序引擎-GWT和应用程序引擎用户服务



我正在使用GAE用户服务来验证我的GWT应用程序。根据用户是否登录,会向用户显示登录页面/仪表板。

GWT应用程序调用AuthServlet(Window.Location.assign("/googleauth");导致应用程序卸载,然后将控制权转移到Google身份验证页面,在身份验证之后,我们被重定向到回调servlet。

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

应用程序从零开始加载。

如果我设置了cookie-->

HttpSession会话=request.getSession();字符串sessionid=session.getId()//从获取sessionID服务器对您登录的响应要求Cookie Cookie=新Cookie("sid",sessionid);response.addCookie(cookie);response.sendRedirect(AppURL.getApplicationBaseURL());

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

字符串sessionID=Cookies.getCookie("sid");if(sessionID!=null){//显示仪表板}

我使用的方式安全吗?Cookie的有效期是多久?

你说:

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 cookie。

相关内容

最新更新