Spec-Zone.ru › Symfony 3.2

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API