2013-07-01 8 views
0

Я использую hwioauthbundle и FosUserBundle, и мне нужно проверить, находится ли пользовательский идентификатор Twitter в белом списке. Если идентификатор пользователя в белом списке, пользователь авторизуется, если нет, перенаправляет на определенную страницу.Как перенаправить пользователя FOSUserBundle, если он не в белом списке?

Для автоматической регистрации я использую пользовательский FOSUserProvider, как в that Gist, я пытаюсь проверить ID в этом файле, но это нехорошо, вы можете onlu вернуть false, а пользователю получить 500 ошибок, но мне нужно перенаправить.

ответ

0

Вы должны включать в себя проверку белого списка внутри обработчика аутентификации метания исключения, если пользователь не белый списка ...

... то поймать исключение внутри обработчика сбоев аутентификации и перенаправление там ,

См. this answer для получения дополнительной информации о том, как настроить службу failure_handler и реализовать там метод onAuthenticationFailure().

+0

Я думаю, что [это] (http://stackoverflow.com/a/15988399/1468352) решение с event listner еще лучше, но это аналогичные решения, поэтому ваш ответ правильный. – Quantizer