GuardAuthenticatorInterface deprecated
интерфейс GuardAuthenticatorInterface реализует AuthenticationEntryPointInterface
deprecated
Интерфейс для всех аутентификаторов «сторож».
Методы этого интерфейса вызываются на протяжении всего процесса аутентификации сторожа, чтобы предоставить вам возможность контролировать большую часть процесса из одного места.
Методы
| 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)
Вызывается, когда аутентификация выполнена, но завершилась неудачно (например, неверный логин/пароль).
Этот метод должен вернуть 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()
Поддерживает ли этот метод куки «запомнить меня»?
Куки «запомнить меня» будут установлены, если выполняются все следующие условия: A) Этот метод возвращает true B) Ключ remember_me в вашем брандмауэре настроен C) Функциональность «запомнить меня» активирована. Обычно это делается с помощью чекбокса «запомнить меня» в форме, но может быть настроено параметрами always_remember_me и remember_me_parameter в ключе брандмауэра «remember_me» D) Метод onAuthenticationSuccess возвращает объект Response.
Значение результата
| bool |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.4/Symfony/Component/Security/Guard/GuardAuthenticatorInterface.html