Spec-Zone.ru › Symfony 3.1

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 файрвола

Возвращаемое значение

bool

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.1/Symfony/Component/Security/Guard/GuardAuthenticatorInterface.html

Spec-Zone.ru

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