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