【问题标题】:Symfony 1.4 cookie issueSymfony 1.4 cookie 问题
【发布时间】:2013-01-01 02:57:48
【问题描述】:

我正在尝试查找 Symfony 设置 cookie 的位置。当我访问我的网站时(我正在使用 sfDoctrineGuard 插件),我得到了登录页面,这是预期的行为。查看已创建的 cookie 时,有一个 'symfony' cookie。我找不到 Symfony 设置此 cookie 的位置...我需要更改过期时间。

我看到使用 setCookie 的唯一地方是“记住我”键,但这完全是一个单独的 cookie。

另一个问题是,出于某种原因,“symfony”cookie 的到期时间在 Safari 中显示为“会话”,而不是日期/时间。

我很确定这与 sfDoctrineGuard 无关,而且 Symfony 总是在用户访问该站点时创建一个 cookie,只需要找到设置此 cookie 的代码。

有什么想法吗?

【问题讨论】:

    标签: php cookies symfony-1.4 session-cookies


    【解决方案1】:

    您可以在factories.yml中更改会话的超时时间

    storage:
      class: sfSessionStorage
      param:
        session_name: symfony
        session_cookie_lifetime: 60000 # number of seconds
    

    Documentation here

    【讨论】:

    • 即使用户没有登录也能正常工作?我试试看,谢谢。
    • @JohnSmith 是的,cookie 用于存储会话 ID - 用户是否登录无关紧要。
    • 在我的工厂中添加“session_name: syfmony”和生命周期参数已修复到期,它不再是会话。我不确定这是否会在我使用 PDOSessionStorage 时起作用,但显然它有。谢谢。
    • @JohnSmith PDOSessionStorage 处理服务器端 - cookie 只包含一个会话 id - 这是在请求中发送到服务器 - Symfony 获取会话 id,然后查找它并查看是否有匹配会话。 PDOSessionStorage 处理服务器端的获取和设置...
    【解决方案2】:

    在您的factories.yml 上尝试

    all:
      storage:
        class: sfSessionStorage
        param:
          session_name:            The cookie name (symfony by default)
          session_id:              The session id (null by default)
          auto_start:              Whether to start the session (true by default)
          session_cookie_lifetime: Cookie lifetime
          session_cookie_path:     Cookie path
          session_cookie_domain:   Cookie domain
          session_cookie_secure:   Cookie secure
          session_cookie_httponly: Cookie http only (only for PHP >= 5.2)
    

    【讨论】:

      猜你喜欢
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 2011-08-31
      相关资源
      最近更新 更多