1

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

我在 example.com 的 factory.yml 和 sd.example.com 中这样做了,但它似乎不起作用

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

有人可以帮忙吗?

4

2 回答 2

1

要共享托管在不同子域上的两个应用程序的登录名,您需要在“factories.yml”中更改这些设置

  • 使用相同的会话名称
  • 使用相同的会话路径
  • 使用与 .rootdomain 相同的 cookie 域名

example.com的factory.yml

贮存:
    类:sfSessionStorage
    参数:
      会话名称:我的站点
      session_path: %SF_CACHE_DIR%/sessions
      session_cookie_domain: .example.com

sd.example.com的factory.yml

贮存:
    类:sfSessionStorage
    参数:
      会话名称:我的站点
      session_path:/var/www/vhosts/example.com/subdomain/mysd/session
      session_cookie_domain: .example.com

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

于 2013-04-05T13:18:31.420 回答
1

两个 cookie 需要具有相同的名称相同的域范围。在您的情况下,我认为您应该强制使用 cookie 名称:

  storage:
    class: sfSessionStorage
    param:
      session_name: my_site
      session_cookie_domain:  .example.com
于 2013-04-02T12:25:22.463 回答