如何正确地进行用户身份验证并与Tornado保持会话?

时间:2014-07-10 03:02:51

标签: python session authentication cookies tornado

我有一个Tornado网络应用程序,我使用Google Oauth Mixin和Facebook Graph Mixin登录。一旦我授权用户,我就会将他的电子邮件保存在cookie中:

self.set_secure_cookie('trakr', user['email'])

在随后的请求中,我会检查cookie是否已设置。如果已设置,那么我将使用该电子邮件从cookie和查询数据库中收取电子邮件。

我正在使用cookie_secret对其进行加密,因此无法以纯文本格式提供电子邮件。所以今天我使用了另一封电子邮件,登录并记下了它的cookie值。然后我使用我的主电子邮件ID登录,编辑了另一个用户的cookie值并刷新了页面。现在我可以通过他的cookie值看到另一个用户的内容!

那么我该如何解决这个问题呢?或者,如果有人找到我的饼干,他们可以随时以我的身份登录吗?

1 个答案:

答案 0 :(得分:0)

感谢Jeff解决方案很简单。制作Cookie httpOnly

创建Cookie时,请将其传递为True

self.set_secure_cookie('trakr', user['email'], httpOnly=True)