Tornado Websocket"错误:身份验证缺失"

时间:2014-11-02 10:08:51

标签: python websocket tornado

所以我的服务器上运行了redis功能和龙卷风,每当我通过登录打开我的websocket聊天时,终端显示以下消息

Error: Authentication missing

我不确定为什么会这样,因为应用程序的身份验证部分中有cookie,

# Save user when authentication was successful.

    def on_user_find(result, user=user):
        #@todo: We should check if email is given even though we can assume.
        if result == "null" or not result:
            # If user does not exist, create a new entry.
            self.application.client.set("user:" + user["email"], tornado.escape.json_encode(user))
        else:
            # Update existing user.
            # @todo: Should use $set to update only needed attributes?
            dbuser = tornado.escape.json_decode(result)
            dbuser.update(user)
            user = dbuser
            self.application.client.set("user:" + user["email"], tornado.escape.json_encode(user))

        # Save user id in cookie.
        self.set_secure_cookie("user", user["email"])
        self.application.usernames[user["email"]] = user.get("name") or user["email"]

在websocket.py(我运行脚本的地方)中,我做了这个,以便websocket句柄在用户访问应用程序之前检查是否有可用的cookie,

class ChatSocketHandler(tornado.websocket.WebSocketHandler):

    def open(self, user):
        self.login = self.get_secure_cookie("user")
        if not self.login:
#            self.login = "anonymous"
             print "Not authorized"
             self.disconnect()
            return

然而它仍然显示错误,我在线搜索并检查了几个SO答案,但他们没有显示任何关于这个问题的可靠解决方案。到目前为止,我得到的最多的是我必须访问websocket标头才能将上面的代码放入其中,但我不知道如何做到这一点。帮助

0 个答案:

没有答案
相关问题