所有子域的

时间:2015-04-23 16:37:31

标签: symfony session subdomain

我正在构建的网站每个用户都有一个子域名。默认域名是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

1 个答案:

答案 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功能。感谢您的思考,也许有人得到了帮助。