当前位置: 代码迷 >> Web前端 >> web自动登录兑现之猜想
  详细解决方案

web自动登录兑现之猜想

热度:114   发布时间:2012-11-23 00:03:43.0
web自动登录实现之猜想
我有一种习惯,在碰见没有处理过的问题时,第一时间就去搜索解决方案。
毫不费劲,一切顺利,互联网改变了我的工作方式,改变了我的思维方式,思考变成了笑话。
今天我倒是想来推敲推敲。
自动登录,也就是为了方便用户,而产生的免登录功能。
许多web邮箱都有一个两周内自动登录选项,选择了它,每次再访问邮箱主页时,便会自动完成登录,跳转到用户主页面。
好坏搞web开发有两年,大概知道要用cookie实现,剩下的只是一个个问号?
cookie怎么来?
怎么让他只在两周内自动登录?
浏览器禁止cookie后是否此功能就失效?
在一个浏览器中选择了自动登录,是否对其它浏览器也生效?
从我的问题中就能看出,即使搞web开发两年,但对http协议可说知之甚少,或说根本不知道,但我确实是做了两年web开发了。虽说对http协议不了解,但当时想像功能实现时第一时间就想到了cookie,现在看来这预感还对了。。。
因为这个功能并不着急实现,所以我还有时间思考,我也专门去了解了一下http协议。
之前对他的认识就是一个名词,web开发与他有关,具体到什么关系,我想是远房亲戚的关系,知道有这么一个人,但对他还没有邻居了解。
这中间经历了很长时间,有两三个月的样子,什么两三个月?
确实是两三个月,并不是这http协议有多难,而是经常忘记我还要去了解http协议,而把时间用在了去关心A女与B女为什么会同时恋上C男,这问题很奇妙,我苦思冥想......
然而现在却对http有了新的认识。
http协议是规定浏览器与Web容器之间交互的准则。
即浏览器请求一张图片,要告诉web容器是哪一张。
申请一个账号,要怎样拼接传递字符串web容器才不会把用户名当成了密码。
从服务器下载东西,哪些可以缓存起来,不必每次都来请求。
上传图片时,数据格式需要有什么改变。
而编程语言则是把变化的业务逻辑转变成不变的数据格式交给容器与浏览器去交互。
分工是明确了,在不知http协议的情况下一样开发得出来web程序,只是知其然不知其所以然。
说了半天下面终于说到实现了。
一开始我认为就是在用户选择了自动登录后提交,服务端把用户帐号与密码md5加密后写入cookie,并设置对应过期时间,
下次用户再次访问网站时就会携带这个值,当服务端发现有此cookie时就进行验证,验证成功接下来就完成登录操作。
后来想了想,只要非本用户获得了这个cookie字符串,就可以一直登录,(当然用户自身也是一样的,只要稍观察cookie的变化)并一直到用户修改密码为止,而不是cookie过期。
这样应该不好,于是又想了一种方法
为了安全,不准备把用户名与密码作为验证,而是当选择自动登录时生成一个随机字符串写入cookie,
当用户名与随机字符串对应上了就自动登录,什么时候取消呢?就在用户手动点击了页面中的退出按钮后清除随机串,重写对应cookie值为空,且设置cookie值为浏览器关闭即失效。
这个要新建一张表,分别对应用户名,随机字符串
user_id,ran_str
完了,这就是最后想出来的方法。
  相关解决方案