如何设置安全cookie然后阅读其内容?

时间:2015-04-29 19:36:30

标签: python cookies tornado

我一直在关注Tornado's documentation,他们认为应该设置安全Cookie。

其中的示例设法成功设置安全cookie,但我无法使用get_secure_cookie()阅读其内容,而get_current_user()将始终返回None

文档无法解释吗?

我正在尝试访问存储在Cookie中的用户名,以便当有人尝试在网络套接字聊天中发送消息时,如果用户未登录则会拒绝该消息。

修改

这是我的课程的样子:

class BaseHandler(tornado.web.RequestHandler):
    def get_current_user(self):
        return self.get_secure_cookie("user")

class MainHandler(BaseHandler):
    def get(self):
        if not self.current_user:
            self.redirect("/login")
            return
        name = tornado.escape.xhtml_escape(self.current_user)
        self.write("Hello, " + name)

class LoginHandler(BaseHandler):

    def post(self):
        self.set_secure_cookie("user", self.get_body_argument("username"))
        self.redirect("/")

这是websocket代码:

   def open(self):
        clients.append(self)
        print(self)

    def on_message(self, message):

        print ("message:"+message)
        username = self.get_current_user()
        print(username)
        if not username:
            self.write_message('{"author":"[SYSTEM]","message":"You are not logged in."}')
        else:
            text = "placeholder"
            message = '{"author":"'+username+'","message":"'+text+'"}'
            for client in clients:
                client.write_message(message)

    def on_close(self):
        clients.remove(self)

0 个答案:

没有答案