2015-04-23 44 views
3

我正在構建的網站每個用戶都有一個子域名。默認域名是www.acme.com,我自己的網頁將(例如)是marcel.acme.com。其他用戶頁面位於johndoe.acme.com下。現在發生以下情況: - www.acme.com顯示我爲登錄狀態。 - marcel.acme.com顯示我已登錄。 - johndoe.acme.com顯示我爲匿名。所有子域名的Symfony2會話

在我的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

你可以從你的'security.yml'共享你的防火牆配置嗎? 另外,您正在使用哪個版本的Symfony? – Restless

+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 

這不應該需要最後一部分BT我無論如何要實現remember_me功能。謝謝你的想法,也許有人會得到這個幫助。

+0

對不起。我無法更快檢查。 我正要建議你設置會話'name'參數,但即使這樣做對我來說並不需要這個工作(我嘗試過,沒有它)。 此外,'main'防火牆的'remember_me'部分不應該像你所說的那樣必要。 無論如何,很高興你的工作。 :) – Restless