所以我的服务器上运行了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标头才能将上面的代码放入其中,但我不知道如何做到这一点。帮助