2012-08-23 3 views
1

Мне удалось получить логин, работающий в Symfony2, но у меня проблемы с/logout. Я получаю исключение, говоря, что он не может найти контроллер для маршрута. Тем не менее, у меня создалось впечатление, что Symfony занимается процессом выхода из системы, точно так же, как это касается входа в систему?Контроллер выхода Symfony2 не найден

(часть) мой security.yml файл:

firewalls: 
    login_firewall: 
     pattern: ^/login/ 
     anonymous: ~ 
    secured_area: 
     pattern: ^/(dashboard|directories|login_check)/ 
     anonymous: ~ 
     form_login: 
      login_path: /login/ 
      check_path: /login_check/ 
     logout: 
      path: /logout/ 
      target:/

Мой (соответствующие) маршруты:

_login: 
    pattern: /login/ 
    defaults: { _controller: NanoBundle:Login:index } 

_login_check: 
    pattern: /login_check/ 

_logout: 
    pattern: /logout/ 

--edit: выход из системы код кнопки:

<a href="{{path('_logout')}}">Logout</a> 
+0

Покажите пожалуйста, указав свою кнопку выхода –

+0

Конечно, моя кнопка выхода Logout QuintenVK

+0

Пожалуйста, напишите все ваши 'routing.yml'. Похоже, ваш маршрут '_logout' находится под каким-то другим регулярным выражением. –

ответ

0

I в конечном счете, зафиксировал его с помощью этой секции security.yml:

secured_area: 
     pattern: .* 
     security: true 
     form_login: 
      login_path: /login/ 
      check_path: /login_check/ 
     logout: 
      path: /logout/ 
      invalidate_session: true 

спасибо всем за то, чтобы помочь в этом :)

0

установил его с этим security.yml разделе:

security: 
    providers: 
     fos_userbundle: 
      id: fos_user.user_manager 

encoders: 
    FOS\UserBundle\Model\UserInterface: sha512 

firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_provider: form.csrf_provider 
     logout:  true 
     anonymous: true 

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/*, role: ROLE_ADMIN } 
    # URL of FOSUserBundle which need to be available to anonymous users 
    - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY } 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

Try это может быть полезно для вас .. :)

+0

спасибо, но я уже исправил его ;-) – QuintenVK

+1

@QuintenVK: может быть, это может помочь кому-то другому. – Sid

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