现在,我提高了龙卷风技能并对用户身份验证提出了疑问。
我的解决方案是在第一页上创建安全令牌,然后将其与其他数据一起发送,从javascript到龙卷风服务器,在那里检查和验证用户。
我想到了cookie,但我不知道如何在WebSocketHandler.on_message
答案 0 :(得分:11)
我建议你阅读文档中的overview section。
那里应该有一些相关的内容:
修改强>
我刚刚意识到你的问题是关于websockets。我相信你可以使用你概述的方法:
您应该能够使用self.request.headers
访问websocket处理程序中的请求标头。
答案 1 :(得分:6)
客户端可能会使用假用户创建请求标头: '用户= “ImFkbWxxxx == | XXXXXXXXXX | 9d847f58a6897df8912f011f0a784xxxxxxxxxx”'
我认为以下方法更好。 如果用户不存在或者cookie id不正确或伪造,则函数get_secure_cookie将不会返回用户
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def open(self):
user_id = self.get_secure_cookie("user")
if not user_id: return None
...