Класс FormAuthenticate
Адаптер аутентификации по форме для компонента AuthComponent.
Позволяет аутентифицировать пользователей на основе данных POST-запроса формы. Обычно это форма входа, в которую пользователи вводят информацию.
Использование Form auth
Загрузите AuthComponent в контроллер initialize() и добавьте 'Form' в ключ 'authenticate'
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email', 'password' => 'passwd'],
'finder' => 'auth',
]
]
]); При настройке FormAuthenticate вы можете передать конфигурацию, в которой указаны поля, модель и поиск. Подробнее см. BaseAuthenticate::$_defaultConfig.
См.: https://book.cakephp.org/4/ru/controllers/components/authentication.html
Краткое описание свойств
- $_config protected
array<string, mixed>Конфигурация выполнения
- $_configInitialized protected
boolУстановлено ли свойство config с предустановленными значениями
- $_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
Конструктор
-
_checkFields() protected
Проверяет поля, чтобы убедиться, что они предоставлены.
-
_configDelete() protected
Удаляет один ключ конфигурации.
-
_configRead() protected
Считывает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_findUser() protected
Находит запись пользователя с использованием имени пользователя и пароля.
-
_query() protected
Получение объекта запроса для извлечения пользователя из базы данных.
-
authenticate() public
Проверяет подлинность личности, содержащейся в запросе. Будет использовать
config.userModel, иconfig.fieldsдля поиска данных POST, которые используются для поиска соответствующей записи вconfig.userModel. Вернет false, если нет данных POST, отсутствует имя пользователя или пароль или условия области не выполнены. -
configShallow() public
Объединение предоставленной конфигурации с существующей конфигурацией. В отличие от
config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение. -
fetchTable() public
Удобный метод для получения экземпляра таблицы.
-
getConfig() public
Возвращает конфигурацию.
-
getConfigOrFail() public
Возвращает конфигурацию для конкретного ключа.
-
getTableLocator() public
Получает локатор таблиц.
-
getUser() public
Получение пользователя на основе информации в запросе. В основном используется бессотоянными системами аутентификации, такими как аутентификация basic и digest.
-
implementedEvents() 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 Массив конфигурации.
_checkFields() protected
_checkFields(Cake\Http\ServerRequest $request, array<string, string> $fields): bool
Проверяет поля на наличие.
Параметры
-
Cake\Http\ServerRequest$request Запрос, содержащий информацию об авторизации.
-
array<string, string>$fields Поля для проверки.
Возвращает
bool_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 true для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Возвращает
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
Авторизует идентификатор, содержащийся в запросе. Будет использовать config.userModel, и config.fields для поиска данных POST, которые используются для поиска совпадающей записи в config.userModel. Вернёт false, если данные POST отсутствуют, имя пользователя или пароль отсутствуют, или условия области не выполнены.
Параметры
-
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
Получает пользователя на основе информации в запросе. В основном используется бессостоятельными системами аутентификации, такими как basic и digest auth.
Параметры
-
Cake\Http\ServerRequest$request Объект запроса.
Возвращает
array<string, mixed>|falseimplementedEvents() public
implementedEvents(): array<string, mixed>
Возвращает список всех событий, на которые будет подписываться этот класс аутентификации.
Класс аутентификации может подписываться на следующие события, запускаемые AuthComponent:
-
Auth.afterIdentify- Запускается после идентификации пользователя одним из настроенных классов аутентификации. Функция обратного вызова должна иметь сигнатуру, например,afterIdentify(EventInterface $event, array $user), когда$user- это идентифицированная запись пользователя. -
Auth.logout- Запускается при вызове AuthComponent::logout(). Функция обратного вызова должна иметь сигнатуру, например,logout(EventInterface $event, array $user), где$user- это пользователь, который будет разлогинен.
Возвращает
array<string, mixed>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 optional Значение для установки.
-
bool$merge optional Признак рекурсивного слияния или перезаписи существующей конфигурации. По умолчанию 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Подробное описание свойств
$_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.FormAuthenticate.html