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() в вашем контроллере. Данные учетной записи пользователя будут проверяться при каждом запросе. Если действительные учетные данные не предоставлены, этот провайдер аутентификации отправит необходимые заголовки аутентификации, что запустит диалог входа в браузере/клиенте.
См.: 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
Обрабатывает попытку доступа без аутентификации, отправив соответствующие заголовки входа.
Подробное описание методов
__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\Queryauthenticate() 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>|falseconfigShallow() 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 Значение для установки.
Возвращает
$thisfetchTable() 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`.
См. также
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 Возвращаемое значение, когда ключ не существует.
Возвращает
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для конкретного ключа.
Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.
Параметры
-
string$key Ключ для получения.
Возвращает
mixedВыбрасывает
InvalidArgumentExceptiongetTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Получает локатор таблиц.
Возвращает
Cake\ORM\Locator\LocatorInterfacegetUser() public
getUser(Cake\Http\ServerRequest $request): array<string, mixed>|false
Получает пользователя на основе информации в запросе. Используется для аутентификации без куки для бесконечных клиентов.
Параметры
-
Cake\Http\ServerRequest$request Объект запроса.
Возвращает
array<string, mixed>|falseimplementedEvents() 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
Возвращает, требуется ли повторное хэширование пароля, хранящегося в репозитории для вошедшего пользователя, с помощью другого алгоритма
Возвращает
boolpasswordHasher() 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.
Возвращает
$thisunauthenticated() 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.4/class-Cake.Auth.BasicAuthenticate.html