Spec-Zone.ru › Symfony 4.1

AuthenticatorInterface

интерфейс AuthenticatorInterface реализует AuthenticationEntryPointInterface

Интерфейс для всех "сторожевых" аутентификаторов.

Методы в этом интерфейсе вызываются на протяжении всего процесса аутентификации сторожа, чтобы вы могли контролировать большую часть процесса из одного места.

Методы

Response start(Request $request, AuthenticationException $authException = null)

Возвращает ответ, который перенаправляет пользователя на аутентификацию.

из AuthenticationEntryPointInterface
bool supports(Request $request)

Поддерживает ли аутентификатор данный Request?

mixed getCredentials(Request $request)

Получает учетные данные аутентификации из запроса и возвращает их в любом формате (например, ассоциативный массив).

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)

Возвращает ответ, который перенаправляет пользователя на авторизацию.

Вызывается, когда анонимный запрос обращается к ресурсу, требующему авторизации. Задача этого метода — вернуть ответ, который "помогает" пользователю начать процесс авторизации.

Примеры:

  • Для формы входа в систему вы можете перенаправить на страницу входа

    return new RedirectResponse('/login');

  • Для системы аутентификации по API-токену вы возвращаете ответ 401

    return new Response('Auth header required', 401);

Параметры

Request $request Запрос, который привел к AuthenticationException
AuthenticationException $authException Исключение, которое инициировало процесс авторизации

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

Response

bool supports(Request $request)

Поддерживает ли данный аутентификатор данный запрос?

Если возвращается false, аутентификатор будет пропущен.

Параметры

Request $request

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

bool

mixed getCredentials(Request $request)

Получает данные для аутентификации из запроса и возвращает их в любом типе (например, ассоциативный массив).

Значение, возвращаемое здесь, будет передано в 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 Любое ненулевое значение

Исключения

UnexpectedValueException Если возвращено 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()

Поддерживает ли этот метод куки remember me?

Куки remember me будут установлены, если все следующие условия выполнены: A) Этот метод возвращает true B) Ключ remember_me в вашем файрволле настроен C) Функциональность "remember me" активирована. Обычно это делается с помощью поля "remember me" в вашей форме, но может быть настроено с помощью параметров "always_remember_me" и "remember_me_parameter" в ключе файрволла "remember_me" D) Метод onAuthenticationSuccess возвращает объект Response

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

bool

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Security/Guard/AuthenticatorInterface.html

Spec-Zone.ru

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