Класс AuthComponent
Класс компонента управления аутентификацией.
Связывает контроль доступа с аутентификацией пользователя и управлением сессией.
- Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\AuthComponent uses Cake\Event\EventDispatcherTrait
Ссылка: http://book.cakephp.org/3.0/ru/controllers/components/authentication.html
Расположение: Controller/Component/AuthComponent.php
Краткое описание констант
-
string'all'
Краткое описание свойств
- Объекты, которые будут использоваться для проверок аутентификации.
$_authenticateObjectsprotected -
$_authenticationProviderprotectedЭкземпляр поставщика аутентификации, который был использован для успешной авторизации текущего пользователя после вызова
login()в том же запросе -
$_authorizationProviderprotectedЭкземпляр поставщика авторизации, который был использован для предоставления доступа текущему пользователю к запрошенному URL.
- Объекты, которые будут использоваться для проверок авторизации.
$_authorizeObjectsprotected -
$_defaultConfigprotectedКонфигурация по умолчаниюarray - Объект хранения.
$_storageprotected -
$allowedActionspublicДействия контроллера, для которых проверка пользователя не требуется.array -
$componentspublicДругие компоненты, используемые AuthComponentarray - Объект запроса
$requestpublic - Объект ответа
$responsepublic - Экземпляр объекта сессии
$sessionpublic
Унаследованные свойства
Краткое описание методов
- __get() publicМагический аксессор для обратной совместимости для свойства
$sessionKey. - __set() publicМагический установщик для обратной совместимости для свойства
$sessionKey. - _getUser() protected
Аналогично AuthComponent::user(), но если пользователь не найден в конфигурированном хранилище, вызываются методы getUser() подключенных объектов аутентификации.
- _isAllowed() protectedПроверяет, доступно ли текущее действие без аутентификации.
- _isLoginAction() protectedНормализует конфигурацию
loginActionи проверяет, совпадает ли текущий URL запроса с действием входа в систему. - _setDefaults() protectedУстанавливает значения по умолчанию для конфигурации.
- _unauthenticated() protected
Обрабатывает попытку доступа без аутентификации. Сначала вызывается метод
unauthenticated()последнего аутентификатора в цепочке. Аутентификатор может обработать отправку ответа или перенаправление, как соответствующим образом, и вернутьtrue, чтобы указать, что дальнейшие действия не требуются. Если аутентификатор возвращает null, этот метод перенаправляет пользователя на действие входа в систему. Если это AJAX-запрос и указана конфигурацияajaxLogin, то рендерится этот элемент, иначе возвращается HTTP-код состояния 403. - _unauthorized() protectedОбработка попытки несанкционированного доступа
- allow() public
Принимает список действий в текущем контроллере, для которых не требуется аутентификация, или без параметров, чтобы разрешить все действия.
- authCheck() public
Основной метод выполнения, обрабатывающий начальную проверку аутентификации и перенаправление невалидных пользователей.
- authenticationProvider() public
Если во время этого запроса был вызван вход в систему и пользователь был успешно аутентифицирован, эта функция вернёт экземпляр объекта аутентификации, который использовался для входа пользователя.
- authorizationProvider() public
Если для текущего запроса была произведена обработка авторизации, эта функция вернёт экземпляр объекта авторизации, который предоставил доступ пользователю к текущему адресу.
- constructAuthenticate() publicЗагружает настроенные объекты аутентификации.
- constructAuthorize() publicЗагружает настроенные объекты авторизации.
- deny() publicУдаляет элементы из списка разрешённых/не требующих аутентификации действий.
- flash() publicУстановить сообщение всплывающей подсказки. Использует компонент Flash со значениями из конфигурации
flash. - getAuthenticate() publicПолучатель для объектов аутентификации. Вернёт конкретный объект аутентификации.
- getAuthorize() publicПолучатель для объектов авторизации. Вернёт конкретный объект авторизации.
- identify() public
Использует настроенные адаптеры аутентификации и пытается идентифицировать пользователя по учетным данным, содержащимся в $request.
- implementedEvents() publicПоддерживаемые события этого компонента.
- initialize() publicИнициализировать свойства.
- isAuthorized() publicПроверить, авторизован ли предоставленный пользователь для запроса.
- logout() publicВыход пользователя.
- redirectUrl() publicПолучить URL, на который должен быть перенаправлен пользователь после входа.
- setUser() publicУстановить предоставленную информацию о пользователе в хранилище как вошедшего пользователя.
- startup() publicОбработчик события Controller.startup.
- storage() publicПолучение/установка объекта хранения записей пользователей.
- user() publicПолучить текущего пользователя из хранилища.
Подробное описание методов
__get()source public
__get( string $name )
Магический аксессор для обратной совместимости для свойства $sessionKey.
Параметры
- string
$name - Имя свойства
Возвращает
mixedПереопределяет
Cake\Controller\Component::__get() __set()source public
__set( string $name , mixed $value )
Магический установщик для обратной совместимости для свойства $sessionKey.
Параметры
- string
$name - Имя свойства.
- mixed
$value - Значение для установки.
_getUser()source protected
_getUser( )
Аналогично AuthComponent::user(), но если пользователь не найден в конфигурированном хранилище, вызываются методы getUser() подключенных объектов аутентификации.
Это позволяет корректно работать методам бессостоятельной аутентификации.
Возвращает
booleantrue, если пользователь найден, false, если нет.
_isAllowed()source protected
_isAllowed( Cake\Controller\Controller $controller )
Проверяет, доступен ли текущий action без аутентификации.
Параметры
-
Cake\Controller\Controller$controller Ссылка на объект-контроллер, инициализирующий компонент
Возвращает
booleanTrue, если action доступен без аутентификации, иначе false
_isLoginAction()source protected
_isLoginAction( Cake\Controller\Controller $controller )
Нормализует конфигурацию loginAction и проверяет, совпадает ли текущий URL запроса с action входа в систему.
Параметры
-
Cake\Controller\Controller$controller - Ссылка на объект контроллера.
Возвращает
booleanTrue, если текущий action является action входа в систему, иначе false.
_setDefaults()source protected
_setDefaults( )
Устанавливает значения по умолчанию для конфигураций.
_unauthenticated()source protected
_unauthenticated( Cake\Controller\Controller $controller )
Обрабатывает попытку доступа без аутентификации. Сначала вызывается метод unauthenticated() последнего аутентификатора в цепочке. Аутентификатор может обработать отправку ответа или перенаправление по необходимости и вернуть true для указания того, что дальнейшие действия не нужны. Если аутентификатор возвращает null, этот метод перенаправляет пользователя на action входа в систему. Если это AJAX-запрос и указана конфигурация ajaxLogin, то рендерится этот элемент, иначе возвращается HTTP-код состояния 403.
Параметры
-
Cake\Controller\Controller$controller - Ссылка на объект контроллера.
Возвращает
mixed|nullNull, если текущий action является действием входа в систему, иначе объект ответа, возвращённый объектом аутентификации или Controller::redirect().
_unauthorized()source protected
_unauthorized( Cake\Controller\Controller $controller )
Обработка попытки несанкционированного доступа
Параметры
-
Cake\Controller\Controller$controller - Ссылка на объект контроллера
Возвращает
mixedИсключения
Cake\Network\Exception\ForbiddenExceptionallow()source public
allow( string|array|null $actions null )
Принимает список действий в текущем контроллере, для которых не требуется аутентификация, или без параметров для разрешения всех действий.
Вы можете использовать allow с массивом или простой строкой.
$this->Auth->allow('view');
$this->Auth->allow(['edit', 'add']); или для разрешения всех действий
$this->Auth->allow();
Параметры
- string|array|null
$actionsнеобязательно null - Имя действия контроллера или массив действий
Ссылка
http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#making-actions-publicauthCheck()source public
authCheck( Cake\Event\Event $event )
Основной метод выполнения, обрабатывает начальную проверку аутентификации и перенаправление недопустимых пользователей.
Проверка аутентификации выполняется, когда имя события совпадает с именем, настроенным в конфигурации checkAuthIn.
Параметры
-
Cake\Event\Event$event - Экземпляр события.
Возвращает
mixed|nullauthenticationProvider()source public
authenticationProvider( )
Если вход в систему был вызван во время этого запроса и пользователь успешно прошёл аутентификацию, эта функция вернёт экземпляр объекта аутентификации, который был использован для входа пользователя.
Возвращает
mixed|nullauthorizationProvider()source public
authorizationProvider( )
Если для текущего запроса была произведена обработка авторизации, эта функция вернёт экземпляр объекта Authorization, который предоставил пользователю доступ к текущему адресу.
Возвращает
mixed|nullconstructAuthenticate()source public
constructAuthenticate( )
Загружает настроенные объекты аутентификации.
Возвращает
array|nullЗагруженные объекты авторизации или null при пустом значении authenticate.
Исключения
Cake\Core\Exception\ExceptionconstructAuthorize()source public
constructAuthorize( )
Загружает настроенные объекты авторизации.
Возвращает
array|nullЗагруженные объекты авторизации, или null при пустом значении authorize.
Исключения
Cake\Core\Exception\Exceptiondeny()source public
deny( string|array|null $actions null )
Удаляет элементы из списка разрешённых/не требующих аутентификации действий.
Вы можете использовать deny с массивом или простой строкой.
$this->Auth->deny('view');
$this->Auth->deny(['edit', 'add']); или
$this->Auth->deny();
чтобы удалить все элементы из разрешённого списка
Параметры
- string|array|null
$actionsнеобязательно null - Имя действия контроллера или массив действий
См. также
\Cake\Controller\Component\AuthComponent::allow()Ссылка
http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#making-actions-require-authorizationflash()source public
flash( string $message )
Устанавливает сообщение flash. Использует компонент Flash со значениями из конфигурации flash.
Параметры
- string
$message - Сообщение для установки.
getAuthenticate()source public
getAuthenticate( string $alias )
Получатель объектов аутентификации. Вернёт конкретный объект аутентификации.
Параметры
- string
$alias - Псевдоним для объекта аутентификации
Возвращает
mixed|nullgetAuthorize()source public
getAuthorize( string $alias )
Получатель объектов авторизации. Вернёт конкретный объект авторизации.
Параметры
- string
$alias - Псевдоним для объекта авторизации
Возвращает
mixed|nullidentify()source public
identify( )
Используйте настроенные адаптеры аутентификации и попробуйте идентифицировать пользователя по данным авторизации, содержащимся в $request.
Вызывает событие Auth.afterIdentify , на которое могут реагировать классы аутентификации.
Возвращает
array|booleanДанные записи пользователя или false, если пользователя не удалось идентифицировать.
implementedEvents()source public
implementedEvents( )
Поддерживаемые этим компонентом события.
Возвращает
arrayПереопределяет
Cake\Controller\Component::implementedEvents() initialize()source public
initialize( array $config )
Инициализировать свойства.
Параметры
- array
$config - Данные конфигурации.
Переопределяет
Cake\Controller\Component::initialize() isAuthorized()source public
isAuthorized( array|ArrayAccess|null $user null , Cake\Network\Request $request null )
Проверить, авторизован ли предоставленный пользователь для запроса.
Использует настроенные адаптеры авторизации, чтобы проверить, авторизован ли пользователь. Каждый адаптер проверяется последовательно. Если любой из них возвращает true, то пользователь авторизован для запроса.
Параметры
- array|ArrayAccess|null
$userнеобязательно null Пользователь, авторизацию которого нужно проверить. Если пусто, используется пользователь, извлеченный из хранилища.
-
Cake\Network\Request$requestнеобязательно null Запрос для проверки аутентификации. Если пусто, используется текущий запрос.
Возвращает
booleanTrue, если $user авторизован, иначе false
logout()source public
logout( )
Выйти из системы.
Возвращает действие выхода для перенаправления. Вызывает событие Auth.logout, которое могут обрабатывать классы аутентификации для выполнения пользовательской логики выхода.
Возвращает
stringНормализованная конфигурация
logoutRedirectСсылка
http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#logging-users-outredirectUrl()source public
redirectUrl( string|array|null $url null )
Получить URL, на который должен быть перенаправлен пользователь после входа.
Передайте URL, чтобы установить пункт назначения, на который должен быть перенаправлен пользователь после входа.
Если параметр не передан, получает URL перенаправления аутентификации. Возвращаемый URL соответствует следующим правилам:
- Возвращает нормализованный URL перенаправления из хранилища, если он есть и для того же домена, на котором работает текущее приложение.
- Если из хранилища не возвращается URL и существует конфигурация
loginRedirect, возвращается значениеloginRedirect. - Если сессии нет и нет
loginRedirect, возвращается /.
Параметры
- string|array|null
$urlнеобязательно null - Необязательный URL для записи в качестве URL перенаправления при входе.
Возвращает
stringURL перенаправления
setUser()source public
setUser( array|ArrayAccess $user )
Установить предоставленные данные пользователя в хранилище как данные вошедшего пользователя.
Класс хранилища настраивается с использованием ключа конфигурации storage или передачей экземпляра в AuthComponent::storage().
Параметры
- array|ArrayAccess
$user - Данные пользователя.
Ссылка
http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#identifying-users-and-logging-them-instartup()source public
startup( Cake\Event\Event $event )
Обработчик события Controller.startup.
Параметры
-
Cake\Event\Event$event - Экземпляр события.
Возвращает
Cake\Network\Response|nullstorage()source public
storage( Cake\Auth\Storage\StorageInterface $storage null )
Получить/установить объект хранения записей пользователей.
Параметры
-
Cake\Auth\Storage\StorageInterface$storageнеобязательно null Устанавливает предоставленный объект как хранилище или, если null, возвращает настроенный объект хранилища.
Возвращает
Cake\Auth\Storage\StorageInterface|nulluser()source public
user( string|null $key null )
Получить текущего пользователя из хранилища.
Параметры
- string|null
$keyнеобязательно null - Поле для извлечения. Оставьте null, чтобы получить всю запись пользователя.
Возвращает
mixed|nullЛибо запись пользователя, либо null, если пользователь не вошел в систему, или извлеченное поле, если ключ указан.
Ссылка
http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#accessing-the-logged-in-userМетоды, унаследованные от Cake\Controller\Component
__construct()source public
__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )
Конструктор
Параметры
-
Cake\Controller\ComponentRegistry$registry - КомпонентRegistry, который может использовать этот компонент для ленивой загрузки своих компонентов
- array
$configнеобязательно [] - Массив настроек конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
arrayМетоды, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и отправки событий.
Возвращает отправленное событие.
Параметры
- string
$name - Имя события.
- array|null
$dataнеобязательно null Любое значение, которое вы хотите передать с этим событием, чтобы слушатели могли его прочитать.
- object|null
$subjectнеобязательно null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий объекта, или создавать свои собственные события и вызывать их по желанию.
Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - eventManager для установки
Возвращает
Cake\Event\EventManagerМетоды, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удалить один ключ конфигурации
Параметры
- string
$key - Ключ для удаления.
Вызывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Чтение значения конфигурации
Параметры
- string|null
$key - Ключ для чтения.
Возвращаемое значение
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись значения конфигурации
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$mergeнеобязательно false Истинное значение для рекурсивного слияния, 'shallow' для простого слияния, ложное значение для перезаписи, по умолчанию ложно.
Исключения
Cake\Core\Exception\Exceptionпри попытке перезаписи существующей конфигурации
config()source public
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
Использование
Чтение всей конфигурации:
$this->config();
Чтение определенного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигурации.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию истинно.
Возвращаемое значение
mixedЗначение конфигурации, которое читается, или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value null )
Объединить предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или полный массив конфигурации.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращаемое значение
$this Объект сам по себе.
Методы, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Удобный метод для записи сообщения в журнал. См. Log::write() для получения дополнительной информации о записи в журналы.
Параметры
- mixed
$msg - Сообщение журнала.
- integer|string
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- string|array
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращаемое значение
booleanУспешность записи в журнал.
Подробности свойств
$_authenticateObjectssource
protected Cake\Auth\BaseAuthenticate[]
Объекты, которые будут использоваться для проверок аутентификации.
[]
$_authenticationProvidersource
protected Cake\Auth\BaseAuthenticate
Экземпляр поставщика аутентификации, который использовался для успешного входа текущего пользователя после вызова login() в том же запросе
$_authorizationProvidersource
protected Cake\Auth\BaseAuthorize
Экземпляр поставщика авторизации, который использовался для предоставления доступа текущему пользователю к URL, который он запрашивает.
$_authorizeObjectssource
protected Cake\Auth\BaseAuthorize[]
Объекты, которые будут использоваться для проверок авторизации.
[]
$_defaultConfigsource
protected array
Конфигурация по умолчанию
-
authenticate- Массив объектов аутентификации, используемых для аутентификации пользователей. Вы можете настроить несколько адаптеров, и они будут проверяться последовательно при определении пользователей.$this->Auth->config('authenticate', [ 'Form' => [ 'userModel' => 'Users.Users' ] ]);Используя имя класса без «Authenticate» в качестве ключа, вы можете передать массив конфигурации для каждого объекта аутентификации. Кроме того, вы можете определить конфигурацию, которая должна быть установлена для всех объектов аутентификации, используя ключ «all»:
$this->Auth->config('authenticate', [ AuthComponent::ALL => [ 'userModel' => 'Users.Users', 'scope' => ['Users.active' => 1] ], 'Form', 'Basic' ]); -
authorize- Массив объектов авторизации, используемых для авторизации пользователей. Вы можете настроить несколько адаптеров, и они будут проверяться последовательно при выполнении проверок авторизации.$this->Auth->config('authorize', [ 'Crud' => [ 'actionPath' => 'controllers/' ] ]);Используя имя класса без «Authorize» в качестве ключа, вы можете передать массив конфигурации для каждого объекта авторизации. Кроме того, вы можете определить конфигурацию, которая должна быть установлена для всех объектов авторизации, используя ключ AuthComponent::ALL:
$this->Auth->config('authorize', [ AuthComponent::ALL => [ 'actionPath' => 'controllers/' ], 'Crud', 'CustomAuth' ]); ~~
ajaxLogin~~ - Имя необязательного элемента представления для отображения при выполнении Ajax-запроса с недействительной или истекшей сессией. Этот параметр устарел начиная с 3.3.6. Вместо этого код клиента должен проверять код состояния 403 и отображать соответствующую форму входа.-
flash- Параметры для использования, когда Auth необходимо выполнить сообщение всплывающей подсказки с помощью FlashComponent::set(). Доступные ключи:-
key- Домен сообщения для всплывающих подсказок, генерируемых этим компонентом, по умолчанию «auth». -
element- Элемент всплывающей подсказки для использования, по умолчанию «default». -
params- Массив дополнительных параметров для использования, по умолчанию ['class' => 'error']
-
loginAction- URL (определённый как строка или массив) до действия контроллера, которое обрабатывает вход. По умолчанию/users/login.loginRedirect- Обычно, если пользователь перенаправляется на страницуloginAction, местоположение, с которого он был перенаправлен, сохраняется в сессии, чтобы он мог быть перенаправлен обратно после успешного входа. Если это значение сессии не задано, метод redirectUrl() вернёт URL, указанный вloginRedirect.logoutRedirect- Действие по умолчанию, на которое следует перенаправить пользователя после выхода. Хотя AuthComponent не обрабатывает перенаправление после выхода, URL перенаправления будет возвращён изAuthComponent::logout(). По умолчаниюloginAction.authError- Ошибка, отображаемая, когда пользователь пытается получить доступ к объекту или действию, к которому у него нет доступа.-
unauthorizedRedirect- Управление обработкой несанкционированного доступа.- При значении по умолчанию
trueнеавторизованный пользователь перенаправляется на URL-адрес referer или$loginRedirectили '/'. - Если задано как строка или массив, значение используется как URL-адрес перенаправления.
- Если задано значение false, вместо перенаправления будет брошено исключение
ForbiddenException.
- При значении по умолчанию
storage- Класс хранилища, который нужно использовать для сохранения записи пользователя. При использовании бессостоятельного аутентификатора необходимо установить это значение на «Memory». По умолчанию «Session».checkAuthIn- Название события, для которого должны выполняться первоначальные проверки аутентификации. По умолчанию «Controller.startup». Вы можете установить его на «Controller.initialize», если хотите выполнить проверку до запуска beforeFilter() контроллера.
[
'authenticate' => null,
'authorize' => null,
'ajaxLogin' => null,
'flash' => null,
'loginAction' => null,
'loginRedirect' => null,
'logoutRedirect' => null,
'authError' => null,
'unauthorizedRedirect' => true,
'storage' => 'Session',
'checkAuthIn' => 'Controller.startup'
] $allowedActionssource
public array
Действия контроллера, для которых не требуется проверка пользователя.
См. также
\Cake\Controller\Component\AuthComponent::allow()[]
$componentssource
public array
Другие компоненты, используемые AuthComponent
['RequestHandler', 'Flash']
$sessionsource
public Cake\Network\Session
Экземпляр объекта сессии
Устарело
3.1.0 Будет удалено в 4.0
© 2005–2017 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/3.3/class-Cake.Controller.Component.AuthComponent.html