与烧瓶的服务器端会话?

Jes*_*ose 1 python flask

在试用Django之后,我对客户端会话感到惊讶.什么阻止用户重播旧值?当我现在退出时,我的会话可以在一个月后重播.

我想为每个会话提供CSRF保护(特别是登录和注销).此外,我想在服务器端设置/取消设置会话,以便旧会话cookie无效.我希望它与消息闪烁的东西兼容.

什么实现满足所有三个需求?

Mar*_*ers 8

Flask会话具有内置的到期日期,以加密方式强制执行.值过期后,客户端无法重播会话值.

您可以通过设置PERMANENT_SESSION_LIFETIME配置选项来设置最大年龄会话有效性.默认值为31天.

您可以将此值设置得更低; 默认情况下,Flask刷新每个请求的cookie时间戳,这意味着只要用户继续访问,cookie就会不断刷新.设置PERMANENT_SESSION_LIFETIME为1小时,如果用户未访问您的服务器一小时或更长时间,会话将自动过期.

如果你是好奇,会话序列,并与签署的URLSafeTimedSerializeritsdangerous项目.

请注意,登录信息可以使用它自己的超时 ; 不只是在会话中记录用户名,添加上次看到该用户的时间.会话数据以加密方式签名,因此最终用户无法更改 cookie.每次用户返回时,刷新该时间戳.这样,您可以保持用户登录到期,而不受会话到期的影响.