AuthenticatorInterface
interface AuthenticatorInterface implements GuardAuthenticatorInterface
Интерфейс для всех аутентификаторов "сторожей".
Методы в этом интерфейсе вызываются на протяжении всего процесса аутентификации сторожа, предоставляя вам возможность контролировать большинство частей процесса из одного места.
Методы
| Response | start(Request $request, AuthenticationException $authException = null) Возвращает ответ, который перенаправляет пользователя на аутентификацию. | из AuthenticationEntryPointInterface |
| mixed|null | getCredentials(Request $request) Получает учетные данные аутентификации из запроса и возвращает их в любом типе (например, ассоциативный массив). | |
| UserInterface|null | getUser(mixed $credentials, UserProviderInterface $userProvider) Возвращает объект UserInterface на основе учетных данных. | из GuardAuthenticatorInterface |
| bool | checkCredentials(mixed $credentials, UserInterface $user) Возвращает true, если учетные данные действительны. | из GuardAuthenticatorInterface |
| GuardTokenInterface | createAuthenticatedToken(UserInterface $user, string $providerKey) Создает аутентифицированный токен для данного пользователя. | из GuardAuthenticatorInterface |
| Response|null | onAuthenticationFailure(Request $request, AuthenticationException $exception) Вызывается, когда аутентификация выполнена, но завершилась неудачей (например, неправильный логин/пароль). | из GuardAuthenticatorInterface |
| Response|null | onAuthenticationSuccess(Request $request, TokenInterface $token, string $providerKey) Вызывается, когда аутентификация выполнена и была успешной! | из GuardAuthenticatorInterface |
| bool | supportsRememberMe() Поддерживает ли этот метод куки "запомнить меня"? | из GuardAuthenticatorInterface |
| bool | supports(Request $request) Поддерживает ли аутентификатор данный запрос? |
Подробности
Response start(Request $request, AuthenticationException $authException = null)
Возвращает ответ, перенаправляющий пользователя для аутентификации.
Вызывается, когда анонимный запрос обращается к ресурсу, требующему аутентификации. Задача этого метода — вернуть какой-то ответ, который «помогает» пользователю начать процесс аутентификации.
Примеры: A) Для входа через форму вы можете перенаправить на страницу входа return new RedirectResponse('/login'); B) Для системы аутентификации по API-токену вы возвращаете ответ 401 return new Response('Заголовок Auth требуется', 401);
Параметры
| Request | $request | Запрос, который привёл к AuthenticationException |
| AuthenticationException | $authException | Исключение, которое инициировало процесс аутентификации |
Возвращаемое значение
| Response |
mixed|null getCredentials(Request $request)
Получает данные аутентификации из запроса и возвращает их в любом типе (например, ассоциативный массив).
Любое значение, которое вы вернёте здесь, будет передано в getUser() и checkCredentials()
Например, для входа через форму вы можете:
return array(
'username' => $request->request->get('_username'),
'password' => $request->request->get('_password'),
);
Или для API-токена в заголовке вы можете использовать:
return array('api_key' => $request->headers->get('X-API-TOKEN'));
Параметры
| Request | $request |
Возвращаемое значение
| mixed|null |
Исключения
| UnexpectedValueException | Если возвращается null |
UserInterface|null getUser(mixed $credentials, UserProviderInterface $userProvider)
Возвращает объект UserInterface на основе данных аутентификации.
credentials — это возвращаемое значение из getCredentials()
Вы можете бросить исключение AuthenticationException, если это необходимо. Если вернёте null, для вас будет брошено UsernameNotFoundException.
Параметры
| mixed | $credentials | |
| UserProviderInterface | $userProvider |
Возвращаемое значение
| UserInterface|null |
Исключения
| AuthenticationException |
bool checkCredentials(mixed $credentials, UserInterface $user)
Возвращает true, если данные аутентификации действительны.
Если возвращается любое значение, отличное от true, аутентификация завершится неудачей. Вы также можете бросить исключение AuthenticationException, чтобы вызвать сбой аутентификации.
credentials — это возвращаемое значение из getCredentials()
Параметры
| mixed | $credentials | |
| UserInterface | $user |
Возвращаемое значение
| bool |
Исключения
| AuthenticationException |
GuardTokenInterface createAuthenticatedToken(UserInterface $user, string $providerKey)
Создаёт аутентифицированный токен для данного пользователя.
Если вам всё равно, какой класс токена используется, или вы не совсем понимаете, что такое «токен», вы можете пропустить этот метод, расширив класс AbstractGuardAuthenticator из своего аутентификатора.
Параметры
| UserInterface | $user | |
| string | $providerKey | Ключ провайдера (т.е. брандмауэра) |
Возвращаемое значение
| GuardTokenInterface |
См. также
| AbstractGuardAuthenticator |
Response|null onAuthenticationFailure(Request $request, AuthenticationException $exception)
Вызывается, когда аутентификация выполнена, но завершилась неудачей (например, неправильное имя пользователя или пароль).
Это должно вернуть Response, отправленный пользователю, например, RedirectResponse на страницу входа или ответ 403.
Если вернёте null, запрос продолжится, но пользователь не будет аутентифицирован. Вероятно, этого не следует делать.
Параметры
| Request | $request | |
| AuthenticationException | $exception |
Возвращаемое значение
| Response|null |
Response|null onAuthenticationSuccess(Request $request, TokenInterface $token, string $providerKey)
Вызывается, когда аутентификация выполнена успешно!
Это должно вернуть Response, отправленный пользователю, например, RedirectResponse на последнюю посещённую страницу.
Если вернёте null, текущий запрос продолжится, и пользователь будет аутентифицирован. Это имеет смысл, например, с API.
Параметры
| Request | $request | |
| TokenInterface | $token | |
| string | $providerKey | Ключ провайдера (т.е. брандмауэра) |
Возвращаемое значение
| Response|null |
bool supportsRememberMe()
Поддерживает ли этот метод куки remember me?
Куки remember me будут установлены, если все следующие условия выполнены: A) Этот метод возвращает true B) Ключ remember me в вашем брандмауэре настроен C) Функциональность «remember me» активирована. Обычно это делается с помощью поля _remember me в вашей форме, но может настраиваться параметрами «always_remember_me» и «remember_me_parameter» в ключе брандмауэра «remember_me» D) Метод onAuthenticationSuccess возвращает объект Response
Возвращаемое значение
| bool |
bool supports(Request $request)
Поддерживает ли аутентификатор данный запрос?
Если возвращается false, аутентификатор будет пропущен.
Параметры
| Request | $request |
Возвращаемое значение
| bool |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.4/Symfony/Component/Security/Guard/AuthenticatorInterface.html