龙卷风websocket应用程序中的用户认证

时间:2011-12-07 09:02:26

标签: python authentication tornado

现在,我提高了龙卷风技能并对用户身份验证提出了疑问。

我的解决方案是在第一页上创建安全令牌,然后将其与其他数据一起发送,从javascript到龙卷风服务器,在那里检查和验证用户。

我想到了cookie,但我不知道如何在WebSocketHandler.on_message

中阅读cookie 你怎么想?我哪里错了?感谢

2 个答案:

答案 0 :(得分:11)

我建议你阅读文档中的overview section

那里应该有一些相关的内容:

修改

我刚刚意识到你的问题是关于websockets。我相信你可以使用你概述的方法:

  • 在应用的非websocket部分创建一个Cookie
  • 检查websocket处理程序中的cookie

您应该能够使用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
        ...