【发布时间】:2012-01-04 22:26:13
【问题描述】:
默认情况下,cookie 在会话结束时过期,因此用户每次关闭浏览器后都需要登录。但是remember 选项呢?如何设置没有过期日期的 cookie?我尝试在 development.ini 文件中添加session.cookie_expires = False,但没有帮助。
还有一个问题:如何设置自定义 cookie 标头(例如 lang 到没有过期日期的主 cookie)?
编辑:
我在pyramid.authentication.AuthTktAuthenticationPolicy 中找到了max_age 参数,它可以让您在会话之间保存一个cookie。但是当max_age 在__init__.py (config) 文件中定义remember me 复选框并且必须在login 视图中定义remember me 时,如何实现remember me 复选框?
【问题讨论】:
-
您是在问如何更改会话cookie的过期时间?如果是这样,您需要告诉我您使用的是哪个会话工厂。
-
pyramid_beaker.session_factory_from_settings和session.type = cookie -
烧杯的cookies默认是永不过期的,所以也许你调试错了?
-
@Michael Merickel 我正在使用来自 pylons/shootout 项目的身份验证机制:github.com/Pylons/shootout/blob/master/development.ini
-
@Michael Merickel pylons/shootout
uses authn_policy = AuthTktAuthenticationPolicy('s0secret'),在文档docs.pylonsproject.org/projects/pyramid/en/latest/api/… 中说:max_age默认:无。这与 timeout 不同,因为 timeout 代表 cookie 中包含的票证的生命周期,而该值代表 cookie 本身的生命周期。设置此值时,将设置 cookie 的 Max-Age 和 Expires 设置,允许 auth_tkt cookie 在浏览器会话之间持续。