【问题标题】:How do I override the default session timeout with pyramid + pyramid-beaker + beaker如何使用金字塔 + 金字塔烧杯 + 烧杯覆盖默认会话超时
【发布时间】:2011-09-29 21:36:46
【问题描述】:

我正在使用金字塔创建 Web 应用程序。然后我使用金字塔烧杯将烧杯连接到金字塔的会话管理系统。

两个值会影响用户会话的持续时间。

  1. 会话 cookie 超时
  2. 实际会话在磁盘/memcache/rdbms/etc 上的生命周期

我目前必须在浏览器关闭时删除默认的 cookie(通过标准烧杯配置)。我将会话数据设置为在 2 小时后清除。这很有效。

我需要知道的是如何将 cookie 的超时和会话超时覆盖为 30 天或其他任意值。

【问题讨论】:

    标签: python pyramid beaker


    【解决方案1】:

    烧杯不支持更改超时。如果您试图让会话持续那么久,您可能应该将其放入单独的 cookie 中。一个常见的用例是登录时的“记住我”复选框。这可以帮助您跟踪用户是谁,但通常实际会话不应停留那么长时间并重新创建。

    【讨论】:

    • 那Beaker为什么要带一个超时参数呢? readthedocs.org/docs/beaker/en/v.1.6.1/modules/session.html
    • Beaker 会在您首次访问 Pyramid 中的 SessionObject 代理时为您创建 cookie。这使得构造函数参数无法在每个请求的基础上进行配置,剖析 SessionObject 的内部结构,以便您可以将手动创建的会话注入其中或完全绕过 SessionObject。
    • 好的,这是有道理的。严格来说,您原始回复的第一句话不是真的,仅在这种情况下?谢谢 :) (不过,它在 Pylons 中对我有用。)
    • 如果您自己手动创建 SessionCookieSession 对象,它会起作用,但是您有责任确保将内容持久化在您的响应对象中。很确定如果您在 Pylons 中使用 SessionMiddleware,您也会遇到同样的问题。
    【解决方案2】:

    我有一个solution。它的旧但有效。

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 2016-09-18
      • 2017-01-12
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多