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 на основе учетных данных. | |
| 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 Response('/login'); B) Для системы аутентификации с помощью API-токена вы возвращаете ответ с кодом 401 return new Response('Заголовок Auth необходим', 401);
Параметры
| Request | $request | Запрос, который привел к AuthenticationException |
| AuthenticationException | $authException | Исключение, которое инициировало процесс аутентификации |
Значение возврата
| Response |
mixed|null getCredentials(Request $request)
Получает данные аутентификации из запроса и возвращает их в любом формате (например, ассоциативный массив). Если вы возвращаете null, аутентификация будет пропущена.
Любое значение, возвращаемое здесь, будет передано в 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 |
UserInterface|null getUser(mixed $credentials, UserProviderInterface $userProvider)
Возвращает объект UserInterface на основе предоставленных данных.
credentials — это значение, возвращаемое методом getCredentials()
Вы можете бросить исключение AuthenticationException, если это необходимо. Если возвращается null, для вас будет брошено исключение UsernameNotFoundException.
Параметры
| mixed | $credentials | |
| UserProviderInterface | $userProvider |
Значение возврата
| UserInterface|null |
Исключения
| AuthenticationException |
checkCredentials(mixed $credentials, UserInterface $user)
Возвращает true, если предоставленные данные валидны.
Любое значение, отличное от true, приведёт к неудачной аутентификации. Вы также можете бросить исключение AuthenticationException, чтобы вызвать неудачу аутентификации.
credentials — это значение, возвращаемое методом getCredentials()
Параметры
| mixed | $credentials | |
| UserInterface | $user |
Исключения
| 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.0/Symfony/Component/Security/Guard/GuardAuthenticatorInterface.html