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

一个关于自动登录的问题 特殊网络下面对Cookie的操作

一个保存登陆问题

原理:
  输入用户名密码 并验证正确

把user_id 放进cookie里面 保存1天

同时把 user_id通过key=value方式放进缓存

login#{uid}={uid}放进缓存里面 保存1天

  用户在未注销情况下访问网站 

从cookie里面拿出user_id 然后根据id从缓存里面根据key取出 user_id  查询user对象 登陆成功


服务器设置:
web服务器 n台

缓存服务器 1台

数据库服务器 1台


客户端上网环境:

铁通网络

多人通过一个路由器进行网络连接

出现问题:
 用jq的ajax请求拿到的user对象
 
        和通过action动态请求拿到的user对象

两个user对象不相同 

比如
网络内某人偶尔能登陆上去一个用户名zilinmengying(不是单指一个账号)

然后一屋子人用其他账号登陆都显示zilinmengying

用jq的ajax获取user取到的是其他账号(该电脑刚登陆的账号,原理这个应该是对的)

用action动态请求拿到的是 zilinmengying  (zilinmengying 账号从来没有在此电脑上登陆)

同时查看cookie里面保存的userid缺是对的


该现象 只出现在铁通网络的一个小局域网内 (其他网络正常 )

同时 部署测试服务器一台 测试此流程是正确的


很着急 那位大侠能知道原因 膜拜求教!~!!



------最佳解决方案--------------------
一般是因为网络中有代理服务器,将某些不应该缓存的信息进行了缓存,后续访问就没有再访问服务器所致。


不过看你的设计也有点怪,基本用Cookie做免登录,也没必要专门用个缓存去保存用户信息吧;直接从数据库中读取不是也很好?
------其他解决方案--------------------
紧急 紧急 千万别沉了~
------其他解决方案--------------------
各位大侠 UP 下也好额
------其他解决方案--------------------
这个局域网内 请求服务器 相同连接  在一段时间内重新请求 并没有进入服务器  不知道是被浏览器缓存了 还是被网络商给做手脚了   太头疼了   问题未解决  又是一个头疼的事  联系铁通的技术人员问问去吧 多谢3楼大神关注我的问题