2016-07-18 37 views
2

我很好奇Flask会话如何工作,特别是它如何在服务器重启之间存储信息(如果我错了,请引用我)。我知道你必须设置一个独特的app.secret_key,这样人们无法以任何方式解密会话并修改cookie。因为会话的cookie只是随机生成的字母和数字,这是否意味着该id与服务器端的id配对,并且服务器存储会话?如果是这样,Flask如何记住重启之间的会话?如果不是,Flask如何知道解密会话cookie?烧瓶会议如何工作?

回答

8

默认会话是使用安全cookie实现的。 Cookies由客户的浏览器坚持,Flask在这方面不做任何事情。

该Cookie是安全加密,它不能阻止与cookie任何人查看的数据,只能从修改。 Flask在发送时使用应用程序的密钥对数据进行签名,并在读取数据时使用相同的密钥对其进行unsigned。

烧瓶不会向会话添加任何内容。没有会话ID,浏览器只是在每个请求期间发送会话cookie,并且Flask读取它。

您可以编写自己的session interface改变如何会话的作品。参见扩展名,如Flask-Session