看到日志里面出现错误,大概意思是:调用方法时验证错误。
仔细查看log:发现用户已经登录,但是在后续的操作中,前面登录的信息丢失,验证失败。
和用户沟通,他说他登录后的一些操作,全部弹出警告框,说没有登录。
仔细排查,发现大部分用户正常,只有极个别用户有类似情况。 晕!!!!!!!!
和这个用户多次沟通后了解到:他使用的是google chrome 。让他使用firefox 和 ie8 后一切正常。
这个问题刚开始我认为是“用户登录后的缓存”没有被更新而产生的问题。
既然这个问题是和浏览器相关的,那么直接锁定为浏览器cookie 存储上的问题。因为整个应用的验证是基于cookies的。
呵呵,到底是咋的回事?
1. 早期应用是在 http://www.example.com 域名下运行的。
2. setcookie( key, value, path, "."+HOST_NAME ) => setcookie( key, value, path, ".example.com" )
####".example.com" 域名前面多一个点,意思是整个域+子域
3. 后面 服务器更换,直接使用了 ip地址进行访问。类似于 http://202.15.32.100/index
4. setcookie( key, value, path, "."+HOST_NAME ) => setcookie( key, value, path, ".202.15.32.100" )
很显然: ".202.15.32.100" 这个是多了一个点的IP地址,而不是域名。chrome 和 IE9 下cookie都不会提取,所以验证失败。
分享到:
评论