我正在构建的网站每个用户都有一个子域名。默认域名是www.acme.com,我自己的页面(例如)是marcel.acme.com。另一个用户页面在johndoe.acme.com下。现在发生以下情况: - www.acme.com显示我已登录。 - marcel.acme.com显示我已登录。 - johndoe.acme.com显示我是anon。
在我的config.yml中,我确实设置了
framework:
session:
cookie_domain: .acme.com
防火墙是为^ /定义的,并使用form_login(FosUserBundle)和oauth。两者都有相同的行为。
登录www.acme.com会重定向到marcel.acme.com,所以可能这就是为什么marcel和www都能正常工作,但我怎样才能让所有子域工作?
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /login
check_path: /login_check
oauth:
login_path: /login
failure_path: /login
check_path: /login
use_forward: false
default_target_path: /mytracker
provider: fos_userbundle
resource_owners:
facebook: /login/check-facebook
oauth_user_provider:
service: my_user_provider
anonymous: true
logout:
path: /logout
target: /
Symfony的版本是2.6.5
答案 0 :(得分:2)
似乎我设法解决了它。在我的配置中,我添加了:
session:
cookie_lifetime: 0
save_path: %kernel.root_dir%/var/sessions
cookie_domain: .acme.com
name: SFSESSID
此外,我加入了我的安全:
remember_me:
key: "%secret%"
lifetime: 31536000
path: /
domain: .acme.com
不应该需要最后一部分但是我想要实现remember_me功能。感谢您的思考,也许有人得到了帮助。