Changes between Initial Version and Version 1 of Ticket #13
- Timestamp:
- 04/07/2011 06:20:37 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #13 – Description
initial v1 3 3 今天,商城也有个问题,登录用户在自己后台操作一段时间后,自动变成未登录,即使登录是勾选“记住我”的选项也没用,这个问题比较隐蔽,因为时间很难判断,不是每次都出现。检查应用服务器、日志等等,都没有什么发现。最终在小虎的帮助下,我们抛弃了firefox的firebug,用起ie的httpwatch,终于发现是一个接口擦掉了common_session_id这个cookie,导致passport判断为未登录。 4 4 5 这个接口的问题经过查证,是因为这个应用配置的passport数据源是错的,用户在商城登录时,用户信息 保存在memcached里,这时调这个接口,他也是先从memcached里查,所以皆大欢喜。过一段时间memcached过期后,这时调这个接口,他也是用passport.recognize方法来判断是否登录,缓存里过期了,他去数据库查,他的passport数据源配的和商城的passport数据源不一样,在他那里查数据库是没有session记录的,passport.recognize方法认为用户没登录,而且把http里带的cookie给删了。5 这个接口的问题经过查证,是因为这个应用配置的passport数据源是错的,用户在商城登录时,用户信息同时保存在memcached和passport数据库里,这时调这个接口,他也是先从memcached里查,所以皆大欢喜。过一段时间memcached过期后,这时调这个接口,他也是用passport.recognize方法来判断是否登录,缓存里过期了,他去数据库查,他的passport数据源配的和商城的passport数据源不一样,在他那里查数据库是没有session记录的,passport.recognize方法认为用户没登录,而且把http里带的cookie给删了。 6 6 7 7 这个很典型的例子,要求我们第一对web应用的一些细节真的要很深入了解,什么是域、cookie、作用范围、有效期、浏览器端接口等等,另外对现有的一些系统原理和机制也要熟悉,比如passport、上传、发布等等。
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/global/2008/images/jss/m_logo091125.jpg)