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() Поддерживает ли данный метод куки remember me? |
Подробности
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.2/Symfony/Component/Security/Guard/GuardAuthenticatorInterface.html