所有子域的 Symfony2 会话 [英] Symfony2 session for all subdomains

查看:53
本文介绍了所有子域的 Symfony2 会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建的网站每个用户都有一个子域.默认域是 www.acme.com,我自己的页面(例如)是 marcel.acme.com.另一个用户页面位于 johndoe.acme.com 下.现在发生以下情况:- www.acme.com 显示我已登录.- marcel.acme.com 显示我已登录.- johndoe.acme.com 将我显示为 anon.

The website I am building has a subdomain per user. The default domain is www.acme.com, my own page would (for example) be marcel.acme.com. Another users pages are under johndoe.acme.com. Now the following happens: - www.acme.com shows me as logged in. - marcel.acme.com shows me as logged in. - johndoe.acme.com shows me as anon.

在我的 config.yml 中我确实设置了

Within my config.yml I did set

框架:
   会话:
      cookie_domain: .acme.com

防火墙是为 ^/定义的,同时使用 form_login (FosUserBundle) 和 oauth.两者都有相同的行为.

Firewall is defined for ^/ and uses both form_login (FosUserBundle) and oauth. Both have same behavior.

登录 www.acme.com 确实会重定向到 marcel.acme.com,所以这可能就是 marcel 和 www 都可以工作的原因,但是我怎样才能让所有子域都可以工作?

Login on www.acme.com does redirect to marcel.acme.com, so probably that is why both marcel and www do work, but how can I get all subdomains to work?

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

Version of Symfony is 2.6.5

推荐答案

似乎我设法解决了它.在我的配置中,我添加了:

Seems I managed to solve it. Within my config I added:

session:
    cookie_lifetime: 0
    save_path: %kernel.root_dir%/var/sessions
    cookie_domain: .acme.com
    name: SFSESSID

此外,我还增加了安全性:

Furthermore I added to my security:

remember_me:
    key:      "%secret%"
    lifetime: 31536000
    path:     /
    domain:   .acme.com

不应该需要最后一部分,无论如何我想实现remember_me功能.感谢您的思考,也许有人对此有所帮助.

That last part should not be needed bt I want to implement remember_me functionality anyway. Thanks for thinking along, maybe someone is helped by this.

这篇关于所有子域的 Symfony2 会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆