Symfony2- Форма входа снова появляется после входа в систему
Привет, друзья stackoverflow,
У меня есть экземпляр, который: В symfony2 я создал комплект безопасности (не использовался FOS USER BUNDLE), в котором, когда я вошел в систему, я пытаюсь снова открыть страницу входа в систему, и отображается форма входа. Не существует перенаправления на по умолчанию, даже если я действительно вошел в систему. Как предотвратить эту регистрационную форму после входа в систему.
Ниже мой security.yml
ОБНОВЛЕНО
firewalls:
main:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /login
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/centerreg, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/customredirect, roles: ROLE_USER }
- { path: ^/admin/, roles: ROLE_ADMIN }
- { path: ^/center/, roles: ROLE_CENTER }
- { path: ^/client/, roles: ROLE_CLIENTADMIN }
- { path: ^/examcenter/, roles: ROLE_EXAMCENTER }
- { path: ^/tutor/, roles: ROLE_TUTOR }
- { path: ^/evaluator/, roles: ROLE_EVALUATOR }
- { path: ^/student/, roles: ROLE_STUDENT }
- { path: ^/user/, roles: ROLE_USER }
Любая помощь будет заметна.
Ответы
Ответ 1
Symfony не будет автоматически делать это, потому что страница входа всегда доступна, как указано в security.yml
:
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Если вы не хотите, чтобы пользователи, прошедшие проверку подлинности, перешли на страницу входа в систему, вам необходимо вручную перенаправить их на страницу входа. Для этого перейдите к своему контроллеру для входа в систему и в начале функции loginAction() добавьте это:
public function loginAction()
{
if ($this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY'))
{
// redirect authenticated users to homepage
return $this->redirect($this->generateUrl('_homepage'));
}
//other code goes here...
}
Это приведет к перенаправлению аутентифицированных пользователей на вашу домашнюю страницу. Конечно, замените '_homepage' на маршрут имени страницы, на которую вы хотите перенаправить пользователей.
Ответ 2
можете ли вы обновить вопрос с помощью своих маршрутов?
Я думаю, что у вас должен быть путь по умолчанию (например, /secure-area
), для которого требуется аутентификация и некоторые другие (например, /secure-area/login
), которые представляют вашу регистрационную форму. Итак, в основном, возвращающийся посетитель будет не посещать /secure-area/login
, но /secure-area
вместо этого. Таким образом, он не будет показывать логин, но перезагрузит пользователя из сеанса...