Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何设置安全cookie,然后读取其内容?_Python_Cookies_Tornado - Fatal编程技术网

Python 如何设置安全cookie,然后读取其内容?

Python 如何设置安全cookie,然后读取其内容?,python,cookies,tornado,Python,Cookies,Tornado,我一直在看,他们说应该设置安全cookies 其中的示例成功地设置了安全cookie,但我无法使用get\u secure\u cookie()读取其内容,get\u current\u user()将始终返回None 是否有文档未能解释的内容 我正在尝试访问存储在cookie中的用户名,以便当有人试图在web套接字聊天中发送消息时,如果用户未登录,它将拒绝该消息 编辑: 这就是我的班级的样子: class BaseHandler(tornado.web.RequestHandler):

我一直在看,他们说应该设置安全cookies

其中的示例成功地设置了安全cookie,但我无法使用
get\u secure\u cookie()
读取其内容,
get\u current\u user()
将始终返回
None

是否有文档未能解释的内容

我正在尝试访问存储在cookie中的用户名,以便当有人试图在web套接字聊天中发送消息时,如果用户未登录,它将拒绝该消息

编辑:

这就是我的班级的样子:

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)

你总是一无所获,因为:

您需要覆盖您的安全方法,tornado提供了一些示例:

我的BaseHandler类有以下代码:
类BaseHandler(tornado.web.RequestHandler):def get_current_user(self):return self.get_secure_cookie(“user”)
这是你的意思还是你在说AO,但还有其他什么?好的,下一步,你能用handler.get_cookie(“user”)读取普通签名的cookie值吗?如果可以-解码签名值函数的问题:正常cookie设置正常,但它们存在相同的问题,我无法访问它们的内容。我也不能使用普通的
get\u cookie()