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 файрвола D) Метод onAuthenticationSuccess возвращает объект Response
Значение, возвращаемое методом
| bool |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/Security/Guard/GuardAuthenticatorInterface.html