两种方案:
保存用户名和密码(加密过的),保存在cookie;
记住当前登录IP,下次登陆去数据库验证当前登录IP实现自动登陆;
请问,以上,哪种方案好一点?
手机端和PC端的记住密码方式是一样吗?
有更好的方法,请指教。
手机端指的是wap网页(响应式,嗯
)。
看了2、3、4楼的回复,总结了一下差不多是按照cookie
+token
+user_info
+time
+sql
这样的组合方式实现。可以,你们都很强势。谢谢各位的回答。(Thank.jpg)
两种方案:
保存用户名和密码(加密过的),保存在cookie;
记住当前登录IP,下次登陆去数据库验证当前登录IP实现自动登陆;
请问,以上,哪种方案好一点?
手机端和PC端的记住密码方式是一样吗?
有更好的方法,请指教。
手机端指的是wap网页(响应式,嗯
)。
看了2、3、4楼的回复,总结了一下差不多是按照cookie
+token
+user_info
+time
+sql
这样的组合方式实现。可以,你们都很强势。谢谢各位的回答。(Thank.jpg)
给个参考吧:
先准备一个带密钥的可逆加密函数,网上随便搜一个都可以。
把用户名,获取到的客户端操作系统,登录时间组成一个json字符串,通过加密函数密钥加密后存到cookie中。
判断的时候取出cookie,通过密钥解密后取出用户名和记录的操作系统,判断取出来的操作系统是否和现在的一致,登录时间根据需求确定是否判断。
加入操作系统判断只是简单的增加cookie窃取盗用的难度,你也可以获取一些其他的客户端信息记录下来判断。
你是app还是wap网页。。。接口是什么形式的 这些你得描述清楚
首先 要是app cookie的话是不靠谱的
ip也不靠谱
我们的解决办法是使用 在数据库存一条记录 使用唯一设备码和用户信息和加密方式(就是俗称的token)去验证你的记住密码
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你这两种方案都不怎么样。
第一种稍微靠谱,要想好你要怎么加密,会不会被破解,用户改名了或者改密码了该怎么办?
第二种就更离谱了,一人记住密码全校/全家自动登录?IP变化了怎么办?
手机端和PC端的记住密码的原理是一样的。
就是登录成功后生成一个很长的随机字符串(100+位)保存在Cookie(要记得设置httponly属性,并且推荐使用SSL),假设有效期30天。
然后服务器那面把这个随机字符串+过期时间+对应哪个用户ID 写入数据库。
用户再次访问的时候,服务器拿到Cookie,查询记录,验证过期时间,恢复session,如果无效/过期,抹除Cookie并弹出登陆页面。
要注意的是,如果用户重设了密码,要顺便把数据库相应用户的自动登录随机字符串的那条记录删掉。
另外要记得设置计划任务,把数据库已经过期的记录删掉。