AuthenticatorInterface
интерфейс AuthenticatorInterface реализует AuthenticationEntryPointInterface
Интерфейс для всех аутентификаторов «стражей».
Методы этого интерфейса вызываются на протяжении всего процесса аутентификации стража, предоставляя вам возможность контролировать большую часть этого процесса из одного места.
Методы
| Response | start(Request $request, AuthenticationException $authException = null) Возвращает ответ, который направляет пользователя на аутентификацию. | из AuthenticationEntryPointInterface |
| bool | supports(Request $request) Поддерживает ли аутентификатор данный запрос? | |
| mixed | getCredentials(Request $request) Получает учетные данные аутентификации из запроса и возвращает их в любом формате (например, ассоциативный массив). | |
| 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() Поддерживает ли этот метод куки remember me? |
Подробности
Ответ start(Запрос $request, ИсключениеАвторизации $authException = null)
Возвращает ответ, перенаправляющий пользователя на авторизацию.
Вызывается, когда анонимный запрос обращается к ресурсу, требующему авторизации. Задача этого метода — вернуть ответ, который поможет пользователю начать процесс авторизации.
Примеры: A) Для входа через форму вы можете перенаправить на страницу входа return new RedirectResponse('/login'); B) Для системы авторизации с токеном API вы возвращаете ответ 401 return new Response('Заголовок Auth необходим', 401);
Параметры
| Запрос | $request | Запрос, который привел к исключению AuthenticationException |
| ИсключениеАвторизации | $authException | Исключение, которое инициировало процесс авторизации |
ЗначениеВозвращаемое
| Ответ |
bool supports(Запрос $request)
Поддерживает ли данный аутентификатор предоставленный Запрос?
Если возвращается false, аутентификатор будет пропущен.
Параметры
| Запрос | $request |
ЗначениеВозвращаемое
| bool |
mixed getCredentials(Запрос $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 |
ЗначениеВозвращаемое
| mixed | Любое ненулевое значение |
Исключения
| UnexpectedValueException | Если возвращается null |
ИнтерфейсПользователя|null getUser(mixed $credentials, ИнтерфейсПоставщикаПользователей $userProvider)
Возвращает объект UserInterface на основе учетных данных.
credentials — возвращаемое значение из getCredentials()
Вы можете бросить исключение AuthenticationException, если хотите. Если возвращаете null, будет брошено исключение UsernameNotFoundException.
Параметры
| mixed | $credentials | |
| ИнтерфейсПоставщикаПользователей | $userProvider |
ЗначениеВозвращаемое
| ИнтерфейсПользователя|null |
Исключения
| ИсключениеАвторизации |
bool checkCredentials(mixed $credentials, ИнтерфейсПользователя $user)
Возвращает true, если учетные данные действительны.
Если возвращено любое значение, отличное от true, авторизация завершится неудачей. Также вы можете бросить исключение AuthenticationException, чтобы вызвать неудачу авторизации.
credentials — возвращаемое значение из getCredentials()
Параметры
| mixed | $credentials | |
| ИнтерфейсПользователя | $user |
ЗначениеВозвращаемое
| bool |
Исключения
| ИсключениеАвторизации |
ИнтерфейсТокенаОхраны createAuthenticatedToken(ИнтерфейсПользователя $user, string $providerKey)
Создает аутентифицированный токен для данного пользователя.
Если вам неважно, какой класс токена используется, или вы не очень понимаете, что такое «токен», можете пропустить этот метод, расширив класс AbstractGuardAuthenticator в вашем аутентификаторе.
Параметры
| ИнтерфейсПользователя | $user | |
| string | $providerKey | Ключ поставщика (т.е. брандмауэра) |
ЗначениеВозвращаемое
| ИнтерфейсТокенаОхраны |
См. также
| AbstractGuardAuthenticator |
Ответ|null onAuthenticationFailure(Запрос $request, ИсключениеАвторизации $exception)
Вызывается, когда выполнение авторизации завершилось неудачей (например, неверный логин/пароль).
Должен вернуть ответ, отправляемый пользователю, например, RedirectResponse на страницу входа или ответ 403.
Если возвращаете null, запрос продолжится, но пользователь не будет авторизован. Вероятно, этого не нужно делать.
Параметры
| Запрос | $request | |
| ИсключениеАвторизации | $exception |
ЗначениеВозвращаемое
| Ответ|null |
Ответ|null onAuthenticationSuccess(Запрос $request, ИнтерфейсТокена $token, string $providerKey)
Вызывается, когда выполнение авторизации завершилось успешно!
Должен вернуть ответ, отправляемый пользователю, например, RedirectResponse на последнюю посещенную страницу.
Если возвращаете null, текущий запрос продолжится, и пользователь будет авторизован. Это имеет смысл, например, для API.
Параметры
| Запрос | $request | |
| ИнтерфейсТокена | $token | |
| string | $providerKey | Ключ поставщика (т.е. брандмауэра) |
ЗначениеВозвращаемое
| Ответ|null |
bool supportsRememberMe()
Поддерживает ли этот метод куки remember me?
Куки remember me будут установлены, если выполнены все следующие условия: A) Этот метод возвращает true B) Ключ rememberme в вашем брандмауэре настроен C) Функционал «remember me» активирован. Обычно это делается с помощью чекбокса «remember me» в форме, но может настраиваться параметрами «alwaysrememberme» и «remembermeparameter» в ключе брандмауэра «remember_me» D) Метод onAuthenticationSuccess возвращает объект Response
ЗначениеВозвращаемое
| bool |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/4.0/Symfony/Component/Security/Guard/AuthenticatorInterface.html