Итак, я использую проект FOSUserBundle и symfony 2.8.
есть ли способ перенаправить анонимного пользователя на страницу /login, если он требуется /page?
Итак, я использую проект FOSUserBundle и symfony 2.8.
есть ли способ перенаправить анонимного пользователя на страницу /login, если он требуется /page?
Используйте брандмауэр для защиты /
:
# app/config/security.yml
security:
firewalls:
app:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_ADMIN }
Дополнительные сведения см. в документы FOSUserBundle.
security.yml
. Не стесняйтесь размещать свой полный файл здесь: gist.github.com
- person Jonny; 25.04.2016
Сначала проверьте , если пользователь авторизован. Затем используйте условие if для перенаправления пользователя.
Полный пример вашего индекса:
public function indexAction()
{
$context = $this->container->get('security.authorization_checker');
if (!($context->isGranted('IS_AUTHENTICATED_REMEMBERED'))) {
$this->redirect('http://yourpage.com/login');
} else {
//Do your other stuff here
}
}