我正在实现一个使用会话的Web应用程序。我使用GWT和应用程序引擎作为我的客户端/服务器,但我认为他们没有做任何与我使用PHP和Apache等不同的东西。你有多久保持会话cookie?
当用户登录到我的Web应用程序时,我正在使用HttpSession为他们开始会话。我得到这样的会话ID:
// From my login servlet:
getThreadLocalRequest().getSession(false).getId();
我将sessionId返回给客户端,并将它们存储在cookie中。我使用的是套这个cookie为“过期”的教程在两周内:
Cookie.write("sid", theSessionId, 1000 * 60 * 60 * 24 * 14); // two weeks
这里就是我很困惑:如果cookie在两周内到期,然后我的用户将沿着使用webapp高高兴兴,只有一天浏览到我的网站,并显示一个登录屏幕。我有什么选择?我可以只设置此cookie的到期时间吗?那样的话,用户将不得不明确注销,否则他们可以永远使用该应用程序而不必重新登录?
或者是否有更好的方法来做到这一点?我不记得像Twitter这样的网站曾要求我重新登录。我似乎永久登录。他们是否设置了过期?
该webapp没有保护任何类型的高度敏感的数据,所以我不介意留下不过期的cookie,但似乎必须有更好的方式?
这是我引用教程:
http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
感谢
通常,我见过的很多网络应用都允许您勾选“保持登录状态”,这会让您无限期登录,或者如果未打开,则在浏览器关闭后将您注销。 – Corey 2010-04-24 03:36:14