Symfony应用程序共享来往于域/子域的登录cookie

2022-07-15 00:00:00 session cookies php symfony1
我们用symfony1.2创建了一个项目,我们的主应用程序运行在我们的主域www.Example.com上,现在我们已经创建了另一个应用程序,我们正在从子域sd.example.com运行,我们想要共享这两个应用程序的登录,以便用户从根域或子域登录他可以使用相同的登录名访问这两个应用程序。
注:
我们有两个应用程序的相同数据库
我们有基于文件的登录系统

我在Example.com的factories.yml和sd.Example.com中执行了此操作,但似乎不起作用

      session_name: mysitesession
      session_path: %SF_CACHE_DIR%/sessions
      session_cookie_domain: .example.com

任何人都能帮忙吗?


解决方案

要共享托管在不同子域上的两个应用的登录,您需要在"factories.yml"

中更改这些设置
  • 使用相同的会话名称
  • 使用相同的会话路径
  • 使用与.rootdomain相同的Cookie域名

Example.com的factories.yml

 storage:
    class: sfSessionStorage
    param:
      session_name: my_site
      session_path: %SF_CACHE_DIR%/sessions
      session_cookie_domain:  .example.com

sd.example.com的factories.yml

 storage:
    class: sfSessionStorage
    param:
      session_name: my_site
      session_path: /var/www/vhosts/example.com/subdomain/mysd/session
      session_cookie_domain:  .example.com

如果它不工作,请检查其他配置文件,可能是任何其他配置/代码文件中覆盖的内容。

相关文章