Php Symfony sfGuardUser在多个子域上进行单一身份验证

Php Symfony sfGuardUser在多个子域上进行单一身份验证,php,cookies,symfony-1.4,sfguard,Php,Cookies,Symfony 1.4,Sfguard,我正在使用symfony1.4.20和sfGuardUser插件。我有几个子域共享同一个应用程序 根据用户是否登录,应用程序的一个模块应提供稍微不同的内容。此模块应通过子域访问,例如sub.domain.com。 现在,如果我通过domain.com访问这个模块,它就可以工作了。如果我通过sub.domain.com访问模块,即使用户已登录,也会被视为未登录 我猜sfguad插件使用的身份验证cookie缺少域:.Domain.com参数。我怎样才能改变这一点? 这条线索似乎表明这是可能的 谢谢

我正在使用symfony1.4.20和sfGuardUser插件。我有几个子域共享同一个应用程序

根据用户是否登录,应用程序的一个模块应提供稍微不同的内容。此模块应通过子域访问,例如sub.domain.com。 现在,如果我通过domain.com访问这个模块,它就可以工作了。如果我通过sub.domain.com访问模块,即使用户已登录,也会被视为未登录

我猜sfguad插件使用的身份验证cookie缺少域:.Domain.com参数。我怎样才能改变这一点? 这条线索似乎表明这是可能的


谢谢

我找到了解决办法。在/apps/my\u app/config下的factories.yml文件中添加session\u cookie\u domain参数,如下所示:

  storage:
    class: sfSessionStorage
    param:
      session_name: symfony
      session_cookie_domain: '.domain.localhost'
我很困惑,因为

  • 我首先认为这与用户使用的auth cookie有关 sfGuard插件,但配置会话cookie的域就足够了 实现我想要的。有人能解释为什么
  • 我在本地测试中只使用了一个单词域 并且设置“.domain”不会在cookie的域中结束。看 like必须至少是一个域,tld类似于“.domain.localhost”

您可以使用大多数浏览器确认cookie将在哪些子域上工作,例如Firefox中的cookie窗口。首先检查?有主机:www.domain.com和路径:“/”,但没有域参数。