Класс 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() в вашем контроллере. Данные учетных данных пользователя будут проверяться при каждом запросе. Если действительные учетные данные не предоставлены, этот поставщик аутентификации отправит необходимые заголовки аутентификации, которые запустят диалог входа в браузере/клиенте.
См.: 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
Обрабатывает попытку доступа без аутентификации, отправляя соответствующие заголовки входа.
Подробное описание методов
__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\Queryauthenticate() public
authenticate(Cake\Http\ServerRequest $request, Cake\Http\Response $response): array|false
Проверяет подлинность пользователя с помощью аутентификации по HTTP. Использует настроенную модель пользователя и пытается выполнить вход с помощью аутентификации по HTTP.
Параметры
-
Cake\Http\ServerRequest$request Запрос для аутентификации.
-
Cake\Http\Response$response Ответ для добавления заголовков.
Возвращает
array|falseconfigShallow() 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 необязательно Значение для установки.
Возвращает
$thisgetConfig() 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 необязательно Возвращаемое значение, когда ключ не существует.
Возвращает
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|false
Получает пользователя на основе информации в запросе. Используется аутентификацией без cookie для бессостоятельных клиентов.
Параметры
-
Cake\Http\ServerRequest$request Объект запроса.
Возвращает
array|falseimplementedEvents() public
implementedEvents(): array
Возвращает список всех событий, на которые будет подписываться этот класс аутентификации.
Класс аутентификации может подписываться на следующие события, генерируемые классом AuthComponent:
-
Auth.afterIdentify- Вызывается после того, как пользователь был идентифицирован с использованием одного из настроенных классов аутентификации. Функция обратного вызова должна иметь сигнатуру, подобнуюafterIdentify(EventInterface $event, array $user), когда$userявляется идентифицированной записью пользователя. -
Auth.logout- Вызывается при вызове AuthComponent::logout(). Функция обратного вызова должна иметь сигнатуру, подобнуюlogout(EventInterface $event, array $user), где$user— пользователь, который собирается выйти из системы.
Возвращает
arrayloginHeaders() public
loginHeaders(Cake\Http\ServerRequest $request): string[]
Генерирует заголовки входа.
Параметры
-
Cake\Http\ServerRequest$request Объект запроса.
Возвращает
string[]needsPasswordRehash() public
needsPasswordRehash(): bool
Возвращает true, если пароль, хранящийся в репозитории для вошедшего пользователя, требует перехеширования с другим алгоритмом.
Возвращает
boolpasswordHasher() 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.
Возвращает
$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$_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