id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	due_date
13	cookie导致的登录问题	chenchongqi		"n年前的一件事，商城有家奇怪的店铺，登录用户访问他的店铺首页后就自动被踢出登录状态，用httpwatch查看所有链接后，发现是他的店铺banner图的链接有问题，访问这个图片时候cookie会被清掉。

今天，商城也有个问题，登录用户在自己后台操作一段时间后，自动变成未登录，即使登录是勾选“记住我”的选项也没用，这个问题比较隐蔽，因为时间很难判断，不是每次都出现。检查应用服务器、日志等等，都没有什么发现。最终在小虎的帮助下，我们抛弃了firefox的firebug，用起ie的httpwatch，终于发现是一个接口擦掉了common_session_id这个cookie，导致商城这边的passport判断为未登录。

这个接口的问题经过查证，是因为这个应用配置的passport数据源是错的，用户在商城登录时，用户信息同时保存在memcached和passport数据库里，这时调这个接口，他也是用passport.recognize方法来判断是否登录，passport也是先从memcached里查，所以皆大欢喜。过一段时间memcached过期后，这时调这个接口，缓存里过期了，passport.recognize他去数据库查，但是他的passport数据源配的和商城的passport数据源不一样，在他那里查数据库是没有这条session记录的，passport.recognize方法认为用户没登录，而且把http里带的cookie给删了。

这个很典型的例子，要求我们第一对web应用的一些细节真的要很深入了解，什么是域、cookie、作用范围、有效期、浏览器端接口等等，另外对现有的一些系统原理和机制也要熟悉，比如passport、上传、发布等等。"	defect	closed	major		商家后台	5.0	fixed	cookie,common_session_id,passport	chenyinle@… chenyin@… huangjianhua@… huangxianduan@… lidarong@… qinghonggang@… tongyiliang@… xujianyou@… yuanhuoqing@…	
