Spec-Zone.ru › CakePHP 4.3

Class BasicAuthenticate

Адаптер Basic Authentication для AuthComponent.

Предоставляет поддержку Basic HTTP аутентификации для AuthComponent. Basic Auth будет аутентифицировать пользователей по настроенной модели userModel и проверять соответствие имени пользователя и паролей.

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

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

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

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

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

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

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

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

  • $_config protected
    array<string, mixed>

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

  • $_configInitialized protected
    bool

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

  • $_defaultConfig protected
    array<string, mixed>

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

  • $_needsPasswordRehash protected
    bool

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

  • $_passwordHasher protected
    Cake\Auth\AbstractPasswordHasher|null

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

  • $_registry protected
    Cake\Controller\ComponentRegistry

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

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

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

  • $defaultTable protected
    string|null

    Псевдоним таблицы по умолчанию для этого объекта.

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

  • __construct() public

    Конструктор

  • _configDelete() protected

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

  • _configRead() protected

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

  • _configWrite() protected

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

  • _findUser() protected

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

  • _query() protected

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

  • authenticate() public

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

  • configShallow() public

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

  • fetchTable() public

    Удобный метод для получения экземпляра таблицы.

  • getConfig() public

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

  • getConfigOrFail() public

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

  • getTableLocator() public

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

  • getUser() public

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

  • 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<string, mixed> $config = [])

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry

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

array<string, mixed> $config optional

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

_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(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void

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

Параметры

array<string, mixed>|string $key

Ключ для записи.

mixed $value

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

string|bool $merge optional

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

Возвращает

void

Выбрасывает

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

_findUser() protected

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

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

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

Параметры

string $username

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

string|null $password optional

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

Возвращает

array<string, mixed>|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<string, mixed>|false

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

Параметры

Cake\Http\ServerRequest $request

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

Cake\Http\Response $response

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

Возвращает

array<string, mixed>|false

configShallow() public

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

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

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

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

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

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

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

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

Параметры

array<string, mixed>|string $key

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

mixed|null $value optional

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

Возвращает

$this

fetchTable() public

fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table

Удобный метод для получения экземпляра таблицы.

Параметры

string|null $alias optional

Имя псевдонима для получения. Должно быть в формате CamelCase. Если null, используется значение свойства $defaultTable.

array<string, mixed> $options optional

Параметры для создания таблицы. Если таблица уже загружена, параметры реестра будут проигнорированы.

Возвращает

Cake\ORM\Table

Выбрасывает

Cake\Core\Exception\CakeException
Если аргумент `$alias` и свойство `$defaultTable` оба равны `null`.

См. также

\Cake\ORM\TableLocator::get()

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 optional

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

mixed $default optional

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

Возвращает

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<string, mixed>|false

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

Параметры

Cake\Http\ServerRequest $request

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

Возвращает

array<string, mixed>|false

implementedEvents() public

implementedEvents(): array<string, mixed>

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

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

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

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

Возвращает

array<string, mixed>

loginHeaders() public

loginHeaders(Cake\Http\ServerRequest $request): array<string, string>

Генерация заголовков входа в систему

Параметры

Cake\Http\ServerRequest $request

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

Возвращает

array<string, string>

needsPasswordRehash() public

needsPasswordRehash(): bool

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

Возвращает

bool

passwordHasher() public

passwordHasher(): Cake\Auth\AbstractPasswordHasher

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

Возвращает

Cake\Auth\AbstractPasswordHasher

Выбрасывает

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

setConfig() public

setConfig(array<string, mixed>|string $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']);

Параметры

array<string, mixed>|string $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<string, mixed>

$_configInitialized protected

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

Тип

bool

$_defaultConfig protected

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

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

Тип

array<string, mixed>

$_needsPasswordRehash protected

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

Тип

bool

$_passwordHasher protected

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

Тип

Cake\Auth\AbstractPasswordHasher|null

$_registry protected

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

Тип

Cake\Controller\ComponentRegistry

$_tableLocator protected

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

Тип

Cake\ORM\Locator\LocatorInterface|null

$defaultTable protected

Псевдоним таблицы по умолчанию для этого объекта.

Тип

string|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.3/class-Cake.Auth.BasicAuthenticate.html

Spec-Zone.ru

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