Python tornado websocket应用程序中的用户身份验证

Python tornado websocket应用程序中的用户身份验证,python,authentication,tornado,Python,Authentication,Tornado,现在,我提高了我的tornado技能,并且有一个关于用户身份验证的问题 我的解决方案是在第一个页面上创建安全令牌,然后将其与其他数据一起发送,从javascript发送到tornado服务器,在那里进行检查和验证用户 我想到了cookie,但我不知道如何在WebSocketHandler.on_message 你怎么想?我哪里错了?谢谢我建议您阅读文档中的 那里应该有一些相关的内容: 编辑 我刚意识到你的问题是关于WebSocket的。我相信您可以使用您概述的方法: 在应用程序的非w

现在,我提高了我的tornado技能,并且有一个关于用户身份验证的问题

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

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

你怎么想?我哪里错了?谢谢

我建议您阅读文档中的

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

编辑

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

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

您应该能够使用
self.request.headers

访问websocket处理程序中的请求标头客户端可能会使用假用户生成请求标头: 'user=“imfkbwxxxxx==| xxxxxxxxx | 9D847F58A6897DF8912F011F0A784xxxxxxxxx”'

我认为下面的方法更好。 如果用户不存在或cookie id不正确或伪造,则函数get_secure_cookie将不会返回用户

类WebSocketHandler(tornado.websocket.WebSocketHandler):
def打开(自):
user\u id=self.get\u secure\u cookie(“用户”)
如果不是用户id:则返回None
...

噢,谢谢你,Codeape!使用
self.request.headers
websocket处理程序save my day)查看以下答案: