Класс 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Объекты, которые будут использованы для проверок аутентификации.array -
$_authenticationProviderprotectedЭкземпляр провайдера аутентификации, который был использован для успешной авторизации текущего пользователя после вызова
login()в том же запросе. -
$_authorizationProviderprotectedЭкземпляр провайдера авторизации, который был использован для предоставления доступа текущему пользователю к запрашиваемому URL.
-
$_authorizeObjectsprotectedОбъекты, которые будут использованы для проверок авторизации.array -
$_defaultConfigprotectedКонфигурация по умолчаниюarray - Объект хранения.
$_storageprotected -
$allowedActionspublicДействия контроллера, для которых не требуется проверка пользователя.array -
$componentspublicДругие компоненты, используемые AuthComponentarray - Объект запроса
$requestpublic - Объект ответа
$responsepublic - Экземпляр объекта Session
$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 )
Проверяет, доступна ли текущая операция без аутентификации.
Параметры
-
Cake\Controller\Controller$controller Ссылка на объект-контроллер, который создал данный объект
Возвращает
booleanTrue, если операция доступна без аутентификации, иначе false
_isLoginAction()source protected
_isLoginAction( Cake\Controller\Controller $controller )
Нормализует конфигурацию loginAction и проверяет, совпадает ли текущий URL запроса с операцией входа в систему.
Параметры
-
Cake\Controller\Controller$controller - Ссылка на объект контроллера.
Возвращает
booleanTrue, если текущая операция - операция входа в систему, иначе false.
_setDefaults()source protected
_setDefaults( )
Устанавливает значения по умолчанию для конфигурации.
_unauthenticated()source protected
_unauthenticated( Cake\Controller\Controller $controller )
Обрабатывает попытку доступа без аутентификации. Сначала вызывается метод unauthenticated() последнего аутентификатора в цепочке. Аутентификатор может обработать отправку ответа или перенаправление как нужно и вернуть true, чтобы указать, что дальнейшие действия не требуются. Если аутентификатор возвращает null, этот метод перенаправляет пользователя на операцию входа в систему. Если это AJAX-запрос и указана конфигурация ajaxLogin, рендерится этот элемент, иначе возвращается HTTP-код состояния 403.
Параметры
-
Cake\Controller\Controller$controller - Ссылка на объект контроллера.
Возвращает
Cake\Network\Response|nullNull, если текущая операция — операция входа в систему, иначе объект ответа, возвращаемый объектом аутентификации или Controller::redirect().
_unauthorized()source protected
_unauthorized( Cake\Controller\Controller $controller )
Обработка попытки несанкционированного доступа
Параметры
-
Cake\Controller\Controller$controller - Ссылка на объект контроллера
Возвращает
Cake\Network\ResponseВызывает
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
$actionsoptional 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 - Объект события.
Возвращает
Cake\Network\Response|nullauthenticationProvider()source public
authenticationProvider( )
Если во время этого запроса был вызван вход в систему и пользователь был успешно аутентифицирован, эта функция вернет экземпляр объекта аутентификации, который использовался для входа пользователя.
Возвращает
Cake\Auth\BaseAuthenticate|nullauthorizationProvider()source public
authorizationProvider( )
Если для текущего запроса была выполнена обработка авторизации, эта функция вернет экземпляр объекта Authorization, который предоставил пользователю доступ к текущему адресу.
Возвращает
Cake\Auth\BaseAuthorize|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
$actionsoptional 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.
Параметры
- string
$message - Сообщение для установки.
getAuthenticate()source public
getAuthenticate( string $alias )
Получатель объектов аутентификации. Вернет определенный объект аутентификации.
Параметры
- string
$alias - Псевдоним для объекта аутентификации
Возвращает
Cake\Auth\BaseAuthenticate|nullgetAuthorize()source public
getAuthorize( string $alias )
Получение объекта авторизации. Вернёт конкретный объект авторизации.
Параметры
- строка
$alias - Псевдоним объекта авторизации
Возвращаемое значение
Cake\Auth\BaseAuthorize|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 )
Инициализация свойств.
Параметры
- массив
$config - Данные конфигурации.
Переопределяет
Cake\Controller\Component::initialize() isAuthorized()source public
isAuthorized( array|null $user null , Cake\Network\Request $request null )
Проверка авторизации предоставленного пользователя для запроса.
Использует настроенные адаптеры авторизации, чтобы проверить, авторизован ли пользователь. Каждый адаптер проверяется последовательно; если любой из них возвращает true, то пользователь авторизован для запроса.
Параметры
- массив|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, возвращается /.
Параметры
- строка|массив|null
$urlнеобязательно null - Необязательный URL для записи в качестве URL перенаправления входа.
Возвращаемое значение
строкаURL перенаправления
setUser()source public
setUser( array $user )
Установить предоставленные данные пользователя в хранилище как вошедшего пользователя.
Класс хранилища настраивается с помощью ключа конфигурации storage или передачей экземпляра в AuthComponent::storage().
Параметры
- массив
$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 )
Получение текущего пользователя из хранилища.
Параметры
- строка|null
$keyнеобязательно null - Поле для извлечения. Оставьте null, чтобы получить всю запись пользователя.
Возвращаемое значение
смешанное|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, которую может использовать этот компонент для ленивой загрузки своих компонентов
- массив
$configнеобязательно [] - Массив настроек конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращаемое значение
массивМетоды, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и отправки событий.
Возвращает отправленное событие.
Параметры
- строка
$name - Имя события.
- массив|null
$dataнеобязательно null Любое значение, которое вы хотите передать вместе с этим событием, чтобы его могли прочитать слушатели.
- объект|null
$subjectнеобязательно null Объект, к которому относится это событие ($this по умолчанию).
Возвращаемое значение
Cake\Event\EventeventManager()source public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать свои события и вызывать их по своему усмотрению.
Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - менеджер событий для установки
Возвращаемое значение
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 True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Выбрасывает
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 - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию 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 array
Объекты, которые будут использоваться для проверки аутентификации.
[]
$_authenticationProvidersource
protected Cake\Auth\BaseAuthenticate
Экземпляр поставщика аутентификации, который использовался для успешной авторизации текущего пользователя после вызова login() в том же запросе
$_authorizationProvidersource
protected Cake\Auth\BaseAuthorize
Экземпляр поставщика авторизации, который использовался для предоставления доступа текущему пользователю к запрошенному URL.
$_authorizeObjectssource
protected array
Объекты, которые будут использоваться для проверок авторизации.
[]
$_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-запроса с недействительной или истекшей сессией.-
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-адрес ссылки или$loginRedirectили '/'. - Если установлено значение строкой или массивом, оно используется в качестве URL для перенаправления.
- Если установлено значение false, выбрасывается исключение
ForbiddenExceptionвместо перенаправления.
- По умолчанию
storage- Класс хранилища, используемый для сохранения записи пользователя. При использовании бессостоятельного аутентификатора следует установить это значение в 'Memory'. По умолчанию 'Session'.checkAuthIn- Имя события, для которого должны выполняться начальные проверки аутентификации. По умолчанию 'Controller.startup'. Можно установить значение 'Controller.initialize', если проверка должна выполняться до выполнения переднего фильтра контроллера передFilter().
[
'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
Экземпляр объекта Session
Устаревшее
3.1.0 Будет удалено в 4.0
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Controller.Component.AuthComponent.html