问题描述
我正在将symfony 1.4.20与sfGuardUser插件一起使用。我有几个共享同一应用程序的子域。
I'm using symfony 1.4.20 with the sfGuardUser plugin. I have several subdomains that are sharing the same app.
该应用程序的一个模块应根据用户是否登录来提供稍有不同的内容。该模块应通过子域(例如sub.domain.com)进行访问。
现在,如果我通过domain.com访问此模块,则可以使用。如果我通过sub.domain.com访问模块,则即使用户登录也被视为未登录。
One module of the app should serve a slightly different content according the user is logged in or not. This module should be accessed through a subdomain, say sub.domain.com.Right now, if I access this module through domain.com, this works. If I access the modules through sub.domain.com, the user is seen as not logged in even if he is.
我的猜测是sfguad使用的auth cookie插件缺少域:.domain.com参数。我该如何改变?
此线程似乎表明有可能。
My guess is the auth cookie used by the sfguad plugin is missing a Domain: .domain.com parameter. How can I change that?This thread 3207099 seems to indicate that it is possible.
谢谢!
推荐答案
我找到了解决方案。将session_cookie_domain参数添加到/ apps / my_app / config下的factory.yml文件中,例如:
I found the solution. Add the session_cookie_domain parameter in the factories.yml file under /apps/my_app/config like:
storage:
class: sfSessionStorage
param:
session_name: symfony
session_cookie_domain: '.domain.localhost'
我很困惑,因为
- 我首先认为这与
使用的auth cookie有关sfGuard插件,但配置会话cookie的域足以实现我想要的
。有人可以解释为什么吗? - 我对本地测试
使用了仅一个单词的域,并且设置 .domain并没有出现在Cookie的域中。看起来
必须至少是一个域,而tld必须是‘.domain.localhost’。
这篇关于Symfony sfGuardUser在多个子域上的单一身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!