日期:2014-05-17  浏览次数:20727 次

关于“记住我”的功能
大家可能都知道用cookie来做,但是好像实际项目中很麻烦呢.
不知道有没有真正在项目中做过的呢讲解下怎么做的。我说说我的情况:
先登录,成功后用户信息放入session,当然判断有没有选择“记住我一周”,选择了设置cookie一周。
这样就算是搞定了。
接下来有个问题:我是不是应该在过滤器中去获取cookie?是应该先判断cookie还是session
比如session要求是30分钟,但是用户选择了“记住我一天”。按照道理应该是这一天都是有效的登录状态。
不知道这里也就是 获取cookie这里,各位是怎么做的。

我是先在过滤器获取cookie看看有没有我的用户名和密码,如果有就直接调用一个登陆的service去登录。
如果没有就转到登录的界面。
session 一周 cookie

------解决方案--------------------
原来是这个需求 那应该是先判断session 如果session还在 就直接进入系统 如果不在 判断cookie是否有效
如果先判断cookie 如果没选记住 再判断session 是否过期 没过期就进入 过期就返回 貌似也可以;
但是如果选了记住一周 那么一周时间都自动登录 不管session是否存活又再次登录 岂不是有上次的session还在 这次又创建了新的 不合理 
------解决方案--------------------
首先判断session中用户是否是登陆状态,如果没有则从cookie中查找,如果找到则在session中将用户标示为登陆状态,如果未找到则表示该用户未登陆。
------解决方案--------------------
我的思路是,session照常判断,它可以完全不知道cookie的存在,如果session失效就踢回登录页面,但是在登录页面做点手脚,在这里判断cookie,如果cookie存在并且符合你的要求,就帮用户自动登录就好了。
------解决方案--------------------
页面载入的时候肯定需要判断下cookie里有没有相关的信息,如果有可以把cookie里的信息取出来,放到session里,这样用户就算是登录状态了,如果没有则显示未登录,到登录界面。