两种方案:保存用户名和密码(加密过的),保存在cookie;记住当前登录IP,下次登陆去数据库验证当前登录IP实现自动登陆;请问,以上,哪种方案好一点?手机端和PC端的记住密码方式是一样吗?有更好的方法,请指教。手机端指的是wap网页(响应式,嗯)。看了2、3、4楼的回复,总结了一下差不多是按照cookie+token+user_info+time+sql这样的组合方式实现。可以,你们都很强势。谢谢各位的回答。(Thank.jpg)
1 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
你这两种方案都不怎么样。
第一种稍微靠谱,要想好你要怎么加密,会不会被破解,用户改名了或者改密码了该怎么办?
第二种就更离谱了,一人记住密码全校/全家自动登录?IP变化了怎么办?
手机端和PC端的记住密码的原理是一样的。
就是登录成功后生成一个很长的随机字符串(100+位)保存在Cookie(要记得设置httponly属性,并且推荐使用SSL),假设有效期30天。
然后服务器那面把这个随机字符串+过期时间+对应哪个用户ID 写入数据库。
用户再次访问的时候,服务器拿到Cookie,查询记录,验证过期时间,恢复session,如果无效/过期,抹除Cookie并弹出登陆页面。
要注意的是,如果用户重设了密码,要顺便把数据库相应用户的自动登录随机字符串的那条记录删掉。
另外要记得设置计划任务,把数据库已经过期的记录删掉。
添加回答
举报
0/150
提交
取消