Tornado创建一个安全Cookie,到期时间少于1天

时间:2015-05-29 09:49:41

标签: python cookies tornado

我正在使用Tornado的{​​{3}}功能来实现用户会话。 set_secure_cookie功能使我们能够创建Cookie,其中Cookie到期的下限可以设置为1天。现在,我需要在一小时内使这些安全的cookie过期。我可以轻松实现这一目标吗?

一种解决方案是使用cookie值附加时间戳。例如,如果Cookie值是我的用户ID(例如1),那么我可以创建一个像1_{current datetime}这样的Cookie。稍后验证时,我可以拆分cookie值并检查underscore character之后的日期时间是否不小于当前时间之前的1小时。这听起来像我一样,因为用户无法修改Tornado的安全Cookie。

但是,有没有比这更优雅的解决方案?

1 个答案:

答案 0 :(得分:2)

使用小数天。 12小时,0.5天等

实际代码的作用是

datetime.datetime.utcnow() + datetime.timedelta(days=expires_days)

timedelta将所有内容转换为秒,因此小数点数为0.4几乎是一小时。

使用get_secure_cookie阅读Cookie时,您也应该注意。您应该在阅读时将相同的值传递给max_age_days