Я использую Symfony 2.7, установленный FOSuserbundle, все работает нормально. Мои пользователи создаются, и я могу войти с ними, но зарегистрированные пользователи могут ввести страницу входа в систему, что для меня не кажется логичным. Я немного искал ответы и выяснил, что мне нужно настроить файл security.yml, но он все равно не работает, каждый может войти на страницу входа.Ограничение или переадресация вошедших в систему пользователей со страницы входа
я обнаружил, что я должен установить
- { path: ^/, role: ROLE_USER}
, но это дает мне цикл перенаправления.
Вот то, что я в нем
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager # Use form.csrf_provider instead for Symfony <2.4
logout: true
anonymous: true
# activate different ways to authenticate
# http_basic: ~
# http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate
# form_login: ~
# http://symfony.com/doc/current/cookbook/security/form_login_setup.html
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/profile, role: ROLE_USER }
- { path: ^/admin/, role: ROLE_ADMIN }
Still не работает, я снова получаю сообщение «Эта веб-страница имеет цикл перенаправления». –
, к какому маршруту вы перенаправляете уже зарегистрированного пользователя ?! –
SecurityController делает вернуть $ this-> renderLogin (массив ( 'last_username' => $ lastUsername, 'ошибка' => $ ошибка, 'csrf_token' => $ csrfToken, )); и я возвращаю $ this-> redirect ($ this-> generateUrl ('main_page')) в моем переопределенном классе, который является маршрутом '/'. –