2015-04-23 2 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

Firewall определяется для ^/и использует как 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

Не могли бы вы поделиться своими конфигурациями firewall с вашим '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

Извините. Я не смог проверить это раньше. Я собирался предложить вам установить параметр session 'name', но даже мне не понадобилось, чтобы это сработало (я пробовал с ним и без него). Кроме того, раздел 'remember_me' на главном брандмауэре не должен быть необходимым, как вы сказали. В любом случае, рад, что у вас это работает. :) – Restless

Смежные вопросы