【发布时间】:2015-08-22 07:58:12
【问题描述】:
我在 Tornado 的 WebSocketHandler 中检查 cookie 时遇到一个奇怪的错误:
class MyHandler(WebSocketHandler):
def open(self):
print(self.get_secure_cookie("cookie"))
它返回 None,但在浏览器中我可以看到该 cookie(在另一个登录处理程序中我使用 self.set_secure_cookie("cookie", "123"))
如何解决这个问题?
谢谢!
更新
如果我使用self.request.headers 我只有:
{
'Pragma': 'no-cache',
'Sec-Websocket-Version': '13',
'Connection': 'Upgrade',
'Upgrade': 'websocket',
'Host': 'localhost:8888',
'Sec-Websocket-Key': 'key',
'Cache-Control': 'no-cache',
'User-Agent': 'u-a',
'Sec-Websocket-Extensions': 'x-webkit-deflate-frame',
'Origin':
'http://127.0.0.1:8888'
}
【问题讨论】:
-
你能提供更多关于这里发生了什么的信息吗?
-
@JakobWeisblat 我想检查,如果用户登录,当他使用网络套接字时
-
该 cookie 设置的路径是什么?
-
@21Zoo 默认路径 - /,我在“登录”页面设置了 cookie。网络套接字聊天 - /
-
您是否通过浏览器的开发工具检查 a) cookie 是否已设置以及 b) 是否在 websocket 请求期间发送?