繁体   English   中英

所有子域的Symfony2会话

[英]Symfony2 session for all subdomains

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM