经常上下CSDN,登陆时候有个选择记录一周,这里应该是说我本次登陆以后一周之内不需要重新登陆了。
假如1号我登陆了,在3号我又使用了,可以不可以重新设置一下失效时间,使用最后登陆时间+一周作为过期时间,不知道有没有说错?
记住用户和密码一般网站是使用COOKIE做的,但是有很多不能完美解决问题,比较新的SESSION、不同浏览器等等。还有一种可能的方式,就是通过业务功能来,记录用户的一个唯一标示,来反填写用户名和(加密)密码,这里使用什么呢,IP应该行不通,有什么唯一标示吗?
假如1号我登陆了,在3号我又使用了,可以不可以重新设置一下失效时间,使用最后登陆时间+一周作为过期时间,不知道有没有说错?
记住用户和密码一般网站是使用COOKIE做的,但是有很多不能完美解决问题,比较新的SESSION、不同浏览器等等。还有一种可能的方式,就是通过业务功能来,记录用户的一个唯一标示,来反填写用户名和(加密)密码,这里使用什么呢,IP应该行不通,有什么唯一标示吗?
你选择的记住一周是用COOKIE的,COOKIE是在本地的,而你所谓的SESSION,“业务功能”都是服务端的。不要扯到一起
比如可以这样public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()
+ "");
cookie.setMaxAge(7*24*60*60);// 以秒为单位,保存一周
response.addCookie(cookie); }
第二个,我是说记住密码的实现方法讨论,用SESSION做不完美,有没有其他方式。至于是什么方式,只要可以就行。
就一台机器上面也有问题。特别是用使用收藏功能进入登陆页面,是一个新的SESSION。
但是这个没有必要.
另外现在基本上所有网站记住密码功能都是用cookie实现的.而cookie和session没有鸟的关系.
你每次打开一个新的浏览器窗口都是一个新的session.和你收藏夹打开还是手动输入都没有关系.
每次的sessionId都是在服务器段生成.
cookie必须要用,本地标识。
要想实现lz需求,我认为必须要用数据库记录自定义的cookie。后台解析cookie,到数据库查找,如果能找到则更新cookie。找不到的话,用户只能手动登录。如果选上一周内免登录,那么把cookie录入到数据库。
当然不需要每次都到数据库查,可以先查session,如果session中有用户,直接更新cookie就可以了。没有的话再查数据库。
需求明确,一定有实现的方法,只是不知道lz的需求是否合理。
新手愚见,请轻拍!