AuthenticatorInterface
интерфейс AuthenticatorInterface реализует AuthenticationEntryPointInterface
Интерфейс для всех "сторожевых" аутентификаторов.
Методы в этом интерфейсе вызываются на протяжении всего процесса аутентификации сторожа, чтобы вы могли контролировать большую часть процесса из одного места.
Методы
| Response | start(Request $request, AuthenticationException $authException = null) Возвращает ответ, который перенаправляет пользователя на аутентификацию. | из AuthenticationEntryPointInterface |
| bool | supports(Request $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? |
Подробности
Response start(Request $request, AuthenticationException $authException = null)
Возвращает ответ, который перенаправляет пользователя на авторизацию.
Вызывается, когда анонимный запрос обращается к ресурсу, требующему авторизации. Задача этого метода — вернуть ответ, который "помогает" пользователю начать процесс авторизации.
Примеры:
-
Для формы входа в систему вы можете перенаправить на страницу входа
return new RedirectResponse('/login');
-
Для системы аутентификации по API-токену вы возвращаете ответ 401
return new Response('Auth header required', 401);
Параметры
| Request | $request | Запрос, который привел к AuthenticationException |
| AuthenticationException | $authException | Исключение, которое инициировало процесс авторизации |
Возвращаемое значение
| Response |
bool supports(Request $request)
Поддерживает ли данный аутентификатор данный запрос?
Если возвращается false, аутентификатор будет пропущен.
Параметры
| Request | $request |
Возвращаемое значение
| bool |
mixed 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 | Любое ненулевое значение |
Исключения
| 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)
Вызывается, когда аутентификация выполнена, но завершилась неудачей (например, неправильное имя пользователя/пароль).
Должен вернуть ответ, отправленный пользователю, например, 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()
Поддерживает ли этот метод куки 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 |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Security/Guard/AuthenticatorInterface.html