1
binux 2014-12-20 16:47:21 +08:00
确认不是缓存的问题吗?你能复现吗?既然你是根据 cookie 判断用户的,你怎么知道返回的是其他用户的ID?
|
2
maga OP @binux 比如访问/userid, 我在/userid 的handler里打印print userid。 在后台有许多用户同时访问的时候,我同一台手机,访问打印出来的userid不一样。 用户访问少的时候,打印出来是同一个userid.
|
4
binux 2014-12-20 17:00:48 +08:00
@maga 既然有许多用户同时访问,你怎么知道打出来的那一条是你的?而且你 print 的时候,多进程吗? flush 了吗?
你在哪看?你在页面上输出读到的 cookie ,看看和发送的是否一致。 |
7
maga OP @binux 因为log只在一个handler里打印,有多个用户的时候,眼睛还是能够看得出来的。 相当于同一个浏览器,访问会打印出不同的userid log
|
8
sujin190 2014-12-20 20:17:24 +08:00
贴个代码看看呗
|
9
maga OP <code>
class ShakeOwnerHandler(BaseHandler): def get(self, template_vars={}): openid = self.get_current_user() if openid is None: code = self.get_argument('code', default=None) if code is None: self.redirect(KURL_SHAKEMONEY_MAIN) return else: appid = APPID appsecret = APPSECRET openid = self.get_oauth_openid(appid, appsecret, code) print 'owner handler oauth:' + openid self.set_cookie_user(openid) print 'openid:' + openid ....... </code> |
10
maga OP |
11
maga OP |
12
maga OP @sujin190 不好意思,贴代码没经验。 就这个handler, 多个用户处理的时候, 对单个浏览器get_secure_cookie返回的openid会变成别人的openid
|
13
chevalier 2014-12-20 22:29:31 +08:00
不会吧。我们这边给客户端的API,一天30亿的PV,千万的注册用户,也没发生过这种情况
|
15
ccdjh 2014-12-21 12:30:07 +08:00 1
|
17
Livid MOD @ccdjh
1. gist 地址是可以直接显示的 2. 但是因为 gist 在用 Fastly 加速,而 Fastly 因为同时也给 The Guardian 和 Twitter 提供 CDN 服务而被影响了。 |
20
Livid MOD |