Spec-Zone.ru › CakePHP 4.2

Класс BasicAuthenticate

Адаптер базовой аутентификации для AuthComponent.

Обеспечивает поддержку базовой HTTP-аутентификации для AuthComponent. Базовая аутентификация будет аутентифицировать пользователей по отношению к настроенной модели пользователей и проверять соответствие имени пользователя и пароля.

Использование Basic-аутентификации

Загрузите AuthComponent в initialize() вашего контроллера и добавьте 'Basic' в ключ 'authenticate'

$this->loadComponent('Auth', [
     'authenticate' => ['Basic']
     'storage' => 'Memory',
     'unauthorizedRedirect' => false,
 ]);

Вы должны установить storage на Memory, чтобы предотвратить отправку CakePHP cookie сессии клиенту.

Вы должны установить unauthorizedRedirect на false. Это заставит AuthComponent бросать исключение ForbiddenException вместо перенаправления на другую страницу.

Поскольку HTTP-аутентификация Basic является бессостоятельной, вам не нужно вызывать setUser() в вашем контроллере. Данные учетных данных пользователя будут проверяться при каждом запросе. Если действительные учетные данные не предоставлены, этот поставщик аутентификации отправит необходимые заголовки аутентификации, которые запустят диалог входа в браузере/клиенте.

Пространство имён: Cake\Auth
См.: https://book.cakephp.org/4/ru/controllers/components/authentication.html

Краткое описание свойств

  • $_config protected
    array

    Конфигурация во время выполнения

  • $_configInitialized protected
    bool

    Указывает, была ли свойство config уже настроено по умолчанию

  • $_defaultConfig protected
    array

    Конфигурация по умолчанию для этого объекта.

  • $_needsPasswordRehash protected
    bool

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

  • $_passwordHasher protected
    Cake\Auth\AbstractPasswordHasher|null

    Экземпляр хешера паролей.

  • $_registry protected
    Cake\Controller\ComponentRegistry

    Регистр компонентов, используемый для получения дополнительных компонентов.

  • $_tableLocator protected
    Cake\ORM\Locator\LocatorInterface|null

    Экземпляр локатора таблиц

Краткое описание методов

  • __construct() public

    Конструктор

  • _configDelete() protected

    Удаляет один ключ конфигурации.

  • _configRead() protected

    Считывает ключ конфигурации.

  • _configWrite() protected

    Записывает ключ конфигурации.

  • _findUser() protected

    Находит запись пользователя, используя предоставленное имя пользователя и пароль.

  • _query() protected

    Получает объект запроса для извлечения пользователя из базы данных.

  • authenticate() public

    Аутентифицирует пользователя с помощью HTTP-аутентификации. Использует настроенную модель пользователя и пытается выполнить вход с помощью HTTP-аутентификации.

  • configShallow() public

    Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

  • getConfig() public

    Возвращает конфигурацию.

  • getConfigOrFail() public

    Возвращает конфигурацию для данного ключа.

  • getTableLocator() public

    Получает локатор таблиц.

  • getUser() public

    Получает пользователя на основе информации в запросе. Используется безкуковой аутентификацией для бессостоятельных клиентов.

  • implementedEvents() public

    Возвращает список всех событий, на которые будет подписываться этот класс аутентификации.

  • loginHeaders() public

    Генерирует заголовки входа.

  • needsPasswordRehash() public

    Возвращает, требуется ли перехеширование пароля, хранящегося в репозитории для вошедшего пользователя, с помощью другого алгоритма

  • passwordHasher() public

    Возвращает объект хеширования паролей.

  • setConfig() public

    Устанавливает конфигурацию.

  • setTableLocator() public

    Устанавливает локатор таблиц.

  • unauthenticated() public

    Обрабатывает попытку доступа без аутентификации, отправляя соответствующие заголовки входа.

END_OF_DOCUMENT_MARKER

Подробное описание методов

__construct() public

__construct(Cake\Controller\ComponentRegistry $registry, array $config = [])

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry

Регистр компонентов, используемый в этом запросе.

array $config необязательно

Массив конфигурации для использования.

_configDelete() protected

_configDelete(string $key): void

Удаляет ключ конфигурации.

Параметры

string $key

Ключ для удаления.

Возвращает

void

Выбрасывает

Cake\Core\Exception\CakeException
если происходит попытка перезаписать существующую конфигурацию

_configRead() protected

_configRead(string|null $key): mixed

Считывает ключ конфигурации.

Параметры

string|null $key

Ключ для считывания.

Возвращает

mixed

_configWrite() protected

_configWrite(string|array $key, mixed $value, bool|string $merge = false): void

Записывает ключ конфигурации.

Параметры

string|array $key

Ключ, в который записывается значение.

mixed $value

Значение для записи.

bool|string $merge необязательно

True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи; по умолчанию false.

Возвращает

void

Выбрасывает

Cake\Core\Exception\CakeException
при попытке перезаписать существующую конфигурацию

_findUser() protected

_findUser(string $username, string|null $password = null): array|false

Находит запись пользователя по имени пользователя и паролю.

Пароли на входе будут хешированы даже если пользователь не существует. Это помогает снизить вероятность атак по таймингу, пытающихся найти допустимые имена пользователей.

Параметры

string $username

Имя пользователя/идентификатор.

string|null $password необязательно

Пароль. Если не указан, проверка пароля пропущена, и возвращается результат поиска.

Возвращает

array|false

_query() protected

_query(string $username): Cake\ORM\Query

Получает объект запроса для извлечения пользователя из базы данных.

Параметры

string $username

Имя пользователя/идентификатор.

Возвращает

Cake\ORM\Query

authenticate() public

authenticate(Cake\Http\ServerRequest $request, Cake\Http\Response $response): array|false

Проверяет подлинность пользователя с помощью аутентификации по HTTP. Использует настроенную модель пользователя и пытается выполнить вход с помощью аутентификации по HTTP.

Параметры

Cake\Http\ServerRequest $request

Запрос для аутентификации.

Cake\Http\Response $response

Ответ для добавления заголовков.

Возвращает

array|false

configShallow() public

configShallow(string|array $key, mixed|null $value = null): $this

Сливает предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.

Установка конкретного значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key

Ключ для установки или полный массив конфигураций.

mixed|null $value необязательно

Значение для установки.

Возвращает

$this

getConfig() public

getConfig(string|null $key = null, mixed $default = null): mixed

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение конкретного значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key необязательно

Ключ для получения или null для всей конфигурации.

mixed $default необязательно

Возвращаемое значение, когда ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для указанного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Выбрасывает

InvalidArgumentException

getTableLocator() public

getTableLocator(): Cake\ORM\Locator\LocatorInterface

Получает локатор таблицы.

Возвращает

Cake\ORM\Locator\LocatorInterface

getUser() public

getUser(Cake\Http\ServerRequest $request): array|false

Получает пользователя на основе информации в запросе. Используется аутентификацией без cookie для бессостоятельных клиентов.

Параметры

Cake\Http\ServerRequest $request

Объект запроса.

Возвращает

array|false

implementedEvents() public

implementedEvents(): array

Возвращает список всех событий, на которые будет подписываться этот класс аутентификации.

Класс аутентификации может подписываться на следующие события, генерируемые классом AuthComponent:

  • Auth.afterIdentify - Вызывается после того, как пользователь был идентифицирован с использованием одного из настроенных классов аутентификации. Функция обратного вызова должна иметь сигнатуру, подобную afterIdentify(EventInterface $event, array $user), когда $user является идентифицированной записью пользователя.

  • Auth.logout - Вызывается при вызове AuthComponent::logout(). Функция обратного вызова должна иметь сигнатуру, подобную logout(EventInterface $event, array $user), где $user — пользователь, который собирается выйти из системы.

Возвращает

array

loginHeaders() public

loginHeaders(Cake\Http\ServerRequest $request): string[]

Генерирует заголовки входа.

Параметры

Cake\Http\ServerRequest $request

Объект запроса.

Возвращает

string[]

needsPasswordRehash() public

needsPasswordRehash(): bool

Возвращает true, если пароль, хранящийся в репозитории для вошедшего пользователя, требует перехеширования с другим алгоритмом.

Возвращает

bool

passwordHasher() public

passwordHasher(): Cake\Auth\AbstractPasswordHasher

Возвращает объект хеширования паролей.

Возвращает

Cake\Auth\AbstractPasswordHasher

Выбрасывает

RuntimeException
Если класс хеширования паролей не найден или он не расширяет AbstractPasswordHasher

setConfig() public

setConfig(string|array $key, mixed|null $value = null, bool $merge = true): $this

Устанавливает конфигурацию.

Использование

Установка конкретного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key

Ключ для установки или полный массив конфигураций.

mixed|null $value необязательно

Значение для установки.

bool $merge необязательно

Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.

Возвращает

$this

Выбрасывает

Cake\Core\Exception\CakeException
При попытке установить недопустимый ключ.

setTableLocator() public

setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this

Устанавливает локатор таблицы.

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator

Экземпляр LocatorInterface.

Возвращает

$this

unauthenticated() public

unauthenticated(Cake\Http\ServerRequest $request, Cake\Http\Response $response): Cake\Http\Response|null|void

Обрабатывает попытку доступа без аутентификации, отправляя соответствующие заголовки входа в систему

  • Null - Никаких действий не выполняется, AuthComponent должен вернуть соответствующий ответ.
  • Cake\Http\Response - Объект ответа, который заставит AuthComponent просто вернуть этот ответ.

Параметры

Cake\Http\ServerRequest $request

Объект запроса.

Cake\Http\Response $response

Объект ответа.

Возвращает

Cake\Http\Response|null|void

Выбрасывает

Cake\Http\Exception\UnauthorizedException

Подробное описание свойств

$_config protected

Конфигурация во время выполнения

Тип

array

$_configInitialized protected

Указывает, была ли свойство конфигурации уже настроена по умолчанию

Тип

bool

$_defaultConfig protected

Конфигурация по умолчанию для данного объекта.

  • fields Поля, используемые для идентификации пользователя.
  • userModel Псевдоним таблицы пользователей, по умолчанию Users.
  • finder Метод поиска для извлечения записи пользователя. По умолчанию 'all'. Вы можете установить имя метода поиска как строку или массив, где ключ — имя метода поиска, а значение — массив, переданный в Table::find() опции. Например: ['finderName' => ['some_finder_option' => 'some_value']]
  • passwordHasher Класс хэширования паролей. Может быть строкой, указывающей имя класса, или массивом, содержащим className ключ, а все остальные ключи будут переданы в качестве конфигурации в класс. По умолчанию 'Default'.

Тип

array

$_needsPasswordRehash protected

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

Тип

bool

$_passwordHasher protected

Экземпляр хэширования паролей.

Тип

Cake\Auth\AbstractPasswordHasher|null

$_registry protected

Реестр компонентов, используемый для получения других компонентов.

Тип

Cake\Controller\ComponentRegistry

$_tableLocator protected

Экземпляр локализации таблиц

Тип

Cake\ORM\Locator\LocatorInterface|null

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Auth.BasicAuthenticate.html

Spec-Zone.ru

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