Spec-Zone.ru › CakePHP 3.1

Класс AuthComponent

Класс компонента управления аутентификацией.

Связывает контроль доступа с аутентификацией пользователя и управлением сеансом.

Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait, Cake\Log\LogTrait
Extended by Cake\Controller\Component\AuthComponent uses Cake\Event\EventDispatcherTrait
Пространство имен: Cake\Controller\Component
Ссылка: http://book.cakephp.org/3.0/ru/controllers/components/authentication.html
Расположен по адресу Controller/Component/AuthComponent.php

Подробное описание методов

__getsource public

__get( string $name )

Магический аксессор для обратной совместимости для свойства $sessionKey.

Параметры

строка $name
Имя свойства

Возвращает

mixed
смешанный

Переопределяет

Cake\Controller\Component::__get()

__setsource public

__set( string $name , mixed $value )

Магический установщик для обратной совместимости для свойства $sessionKey.

Параметры

строка $name
Имя свойства.
смешанный $value
Значение для установки.

_getUsersource protected

_getUser( )

Аналогично AuthComponent::user(), за исключением того, что если пользователь не найден в настроенном хранилище, будут вызываться методы getUser() подключённых объектов аутентификации.

Это позволяет корректно работать методам аутентификации без состояния.

Возвращает

boolean
true, если пользователь найден, false — если нет.

_isAllowedsource protected

_isAllowed( Cake\Controller\Controller $controller )

Проверяет, доступна ли текущая операция без аутентификации.

Параметры

Cake\Controller\Controller $controller
Ссылка на объект контроллера, инициализирующий компонент

Возвращает

boolean
True, если действие доступно без аутентификации, иначе false

_isLoginActionsource protected

_isLoginAction( Cake\Controller\Controller $controller )

Нормализует конфигурацию loginAction и проверяет, совпадает ли текущий URL запроса с действием входа в систему.

Параметры

Cake\Controller\Controller $controller
Ссылка на объект контроллера.

Возвращает

boolean
True, если текущее действие — действие входа в систему, иначе false.

_setDefaultssource protected

_setDefaults( )

Устанавливает значения по умолчанию для конфигураций.

_unauthenticatedsource protected

_unauthenticated( Cake\Controller\Controller $controller )

Обрабатывает попытку доступа без аутентификации. Сначала будет вызван метод unauthenticated() последнего аутентификатора в цепочке. Аутентификатор может обработать отправку ответа или перенаправление и вернуть true для указания того, что дальнейшие действия не нужны. Если аутентификатор возвращает null, этот метод перенаправляет пользователя на действие входа в систему. Если это AJAX-запрос и задана конфигурация ajaxLogin, то отображается этот элемент, иначе возвращается HTTP-код состояния 403.

Параметры

Cake\Controller\Controller $controller
Ссылка на объект контроллера.

Возвращает

Cake\Network\Response|null
Null, если текущее действие — действие входа в систему, иначе объект ответа, возвращаемый объектом аутентификации или Controller::redirect().

_unauthorizedsource protected

_unauthorized( Cake\Controller\Controller $controller )

Обработка попытки несанкционированного доступа

Параметры

Cake\Controller\Controller $controller
Ссылка на объект контроллера

Возвращает

Cake\Network\Response
\Cake\Network\Response

Вызывает

Cake\Network\Exception\ForbiddenException
\Cake\Network\Exception\ForbiddenException

allowsource public

allow( string|array $actions null )

Принимает список действий в текущем контроллере, для которых не требуется аутентификация, или без параметров, чтобы разрешить все действия.

Можно использовать allow с массивом или простой строкой.

$this->Auth->allow('view');
$this->Auth->allow(['edit', 'add']);

или для разрешения всех действий

$this->Auth->allow();

Параметры

строка|массив $actions необязательно null
Имя действия контроллера или массив действий

Ссылка

http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#making-actions-public

authChecksource public

authCheck( Cake\Event\Event $event )

Основной метод выполнения, обрабатывает начальную проверку аутентификации и перенаправление неверных пользователей.

Проверка аутентификации выполняется, когда имя события совпадает с именем, настроенным в конфигурации checkAuthIn.

Параметры

Cake\Event\Event $event
Объект события.

Возвращает

Cake\Network\Response|null
\Cake\Network\Response|null

authenticationProvidersource public

authenticationProvider( )

Если во время этого запроса был вызван метод входа в систему и пользователь был успешно аутентифицирован, эта функция вернёт экземпляр объекта аутентификации, который использовался для входа пользователя.

Возвращает

Cake\Auth\BaseAuthenticate|null
\Cake\Auth\BaseAuthenticate|null

authorizationProvidersource public

authorizationProvider( )

Если для текущего запроса была выполнена авторизация, эта функция вернёт экземпляр объекта авторизации, который предоставил пользователю доступ к текущему адресу.

Возвращает

Cake\Auth\BaseAuthorize|null
\Cake\Auth\BaseAuthorize|null

constructAuthenticatesource public

constructAuthenticate( )

Загружает настроенные объекты аутентификации.

Возвращает

array|null
Загруженные объекты авторизации или null при пустом значении authenticate.

Вызывает

Cake\Core\Exception\Exception
\Cake\Core\Exception\Exception

constructAuthorizesource public

constructAuthorize( )

Загружает настроенные объекты авторизации.

Возвращает

array|null
Загруженные объекты авторизации или null при пустом значении authorize.

Вызывает

Cake\Core\Exception\Exception
\Cake\Core\Exception\Exception

denysource public

deny( string|array $actions null )

Удаляет элементы из списка разрешённых/не требующих аутентификации действий.

Можно использовать deny с массивом или простой строкой.

$this->Auth->deny('view');
$this->Auth->deny(['edit', 'add']);

или

$this->Auth->deny();

чтобы удалить все элементы из разрешённого списка

Параметры

строка|массив $actions необязательно null
Имя действия контроллера или массив действий

См. также

Cake\Controller\Component\AuthComponent::allow()

Ссылка

http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#making-actions-require-authorization

flashsource public

flash( string $message )

Устанавливает сообщение flash. Использует компонент Flash со значениями из конфигурации flash.

Параметры

строка $message
Сообщение для установки.

getAuthenticatesource public

getAuthenticate( string $alias )

Получатель объектов аутентификации. Вернёт определённый объект аутентификации.

Параметры

строка $alias
Псевдоним объекта аутентификации

Возвращает

Cake\Auth\BaseAuthenticate|null
\Cake\Auth\BaseAuthenticate|null

getAuthorizesource public

getAuthorize( string $alias )

Получатель объектов авторизации. Вернёт определённый объект авторизации.

Параметры

строка $alias
Псевдоним объекта авторизации

Возвращает

Cake\Auth\BaseAuthorize|null
\Cake\Auth\BaseAuthorize|null

identifysource public

identify( )

Использует настроенные адаптеры аутентификации и пытается идентифицировать пользователя по учётным данным, содержащимся в $request.

Вызывает событие Auth.afterIdentify, на которое могут реагировать классы аутентификации.

Возвращает

array|boolean
Данные записи пользователя или false, если пользователь не был идентифицирован.

implementedEventssource public

implementedEvents( )

Поддерживаемые этим компонентом события.

Возвращает

array
массив

Переопределяет

Cake\Controller\Component::implementedEvents()

initializesource public

initialize( array $config )

Инициализирует свойства.

Параметры

массив $config
Данные конфигурации.

Переопределяет

Cake\Controller\Component::initialize()

isAuthorizedsource public

isAuthorized( array|null $user null , Cake\Network\Request $request null )

Проверяет, авторизован ли предоставленный пользователь для запроса.

Использует настроенные адаптеры авторизации, чтобы проверить, авторизован ли пользователь. Каждый адаптер проверяется последовательно; если любой из них возвращает true, пользователь авторизован для запроса.

Параметры

массив|null $user необязательно null
Пользователь, авторизацию которого нужно проверить. Если пусто, используется пользователь, полученный из хранилища.
Cake\Network\Request $request необязательно null
Запрос, для которого нужно выполнить аутентификацию. Если пусто, используется текущий запрос.

Возвращает

boolean
True, если $user авторизован, иначе false

logoutsource public

logout( )

Выйти из системы.

Возвращает действие выхода для перенаправления. Вызывает событие Auth.logout, на которое могут реагировать классы аутентификации для выполнения кастомной логики выхода.

Возвращает

string
Нормализованная конфигурация logoutRedirect

Ссылка

http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#logging-users-out

redirectUrlsource public

redirectUrl( string|array $url null )

Получить URL, на который пользователь должен быть перенаправлен после входа.

Передайте URL, чтобы установить место назначения, куда должен быть перенаправлен пользователь при входе в систему.

Если параметр не передан, получает URL перенаправления аутентификации. Возвращаемый URL соответствует следующим правилам:
- Возвращает нормализованный URL перенаправления из хранилища, если он существует и для того же домена, на котором работает текущее приложение. - Если из хранилища не возвращается URL и есть конфигурация loginRedirect, возвращается значение loginRedirect. - Если сессии нет и нет loginRedirect, возвращается /.

Параметры

строка|массив $url необязательно null
Необязательный URL для записи в качестве URL перенаправления при входе в систему.

Возвращает

string
URL перенаправления

setUsersource public

setUser( array $user )

Устанавливает предоставленную информацию о пользователе в хранилище как вошедшего пользователя.

Класс хранилища настраивается с помощью ключа конфигурации storage или путём передачи экземпляра в AuthComponent::storage().

Параметры

массив $user
Массив данных пользователя.

Ссылка

http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#identifying-users-and-logging-them-in

startupsource public

startup( Cake\Event\Event $event )

Обработчик события Controller.startup.

Параметры

Cake\Event\Event $event
Экземпляр события.

Возвращает

Cake\Network\Response|null
\Cake\Network\Response|null

storagesource public

storage( Cake\Auth\Storage\StorageInterface $storage null )

Получение/установка объекта хранилища записей пользователей.

Параметры

Cake\Auth\Storage\StorageInterface $storage необязательно null
Устанавливает предоставленный объект как хранилище или, если null, возвращает настроенный объект хранилища.

Возвращает

Cake\Auth\Storage\StorageInterface|null
\Cake\Auth\Storage\StorageInterface|null

usersource public

user( string $key null )

Получить текущего пользователя из хранилища.

Параметры

строка $key необязательно null
Поле для извлечения. Оставьте null, чтобы получить всю запись пользователя.

Возвращает

array|null
Либо запись пользователя, либо null, если пользователь не авторизован.

Ссылка

http://book.cakephp.org/3.0/ru/controllers/components/authentication.html#accessing-the-logged-in-user

Методы, унаследованные от Cake\Controller\Component

__constructsource public

__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry
ComponentRegistry, который может использовать этот компонент для ленивой загрузки своих компонентов
массив $config необязательно []
Массив параметров конфигурации.
END_OF_DOCUMENT_MARKER

__debugInfosource public

__debugInfo( )

Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.

Возвращаемое значение

array
массив

Методы, используемые из Cake\Event\EventDispatcherTrait

dispatchEventsource public

dispatchEvent( string $name , array|null $data null , object|null $subject null )

Обёртка для создания и отправки событий.

Возвращает отправленное событие.

Параметры

строка $name
Имя события.
массив|null $data необязательно null
Любое значение, которое вы хотите передать с этим событием, чтобы его могли прочитать слушатели.
объект|null $subject необязательно null
Объект, к которому относится это событие ($this по умолчанию).

Возвращаемое значение

Cake\Event\Event
\Cake\Event\Event

eventManagersource public

eventManager( Cake\Event\EventManager $eventManager null )

Возвращает экземпляр менеджера событий Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям объекта, или создавать свои собственные события и вызывать их по желанию.

Параметры

Cake\Event\EventManager $eventManager необязательно null
менеджер событий для установки

Возвращаемое значение

Cake\Event\EventManager
\Cake\Event\EventManager

Методы, используемые из Cake\Core\InstanceConfigTrait

_configDeletesource protected

_configDelete( string $key )

Удаление одного ключа конфигурации

Параметры

строка $key
Ключ для удаления.

Исключения

Cake\Core\Exception\Exception
если попытка перезаписать существующую конфигурацию

_configReadsource protected

_configRead( string|null $key )

Чтение переменной конфигурации

Параметры

строка|null $key
Ключ для чтения.

Возвращаемое значение

mixed
смешанный тип

_configWritesource protected

_configWrite( string|array $key , mixed $value , boolean|string $merge false )

Запись переменной конфигурации

Параметры

строка|массив $key
Ключ для записи.
смешанный тип $value
Значение для записи.
логический тип|строка $merge необязательно false
Истина для рекурсивного слияния, 'shallow' для простого слияния, ложь для перезаписи, по умолчанию ложь.

Исключения

Cake\Core\Exception\Exception
если попытка перезаписи существующей конфигурации

configsource 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']);

Параметры

строка|массив|null $key необязательно null
Ключ для получения/установки или весь массив конфигурации.
смешанный тип|null $value необязательно null
Значение для установки.
логический тип $merge необязательно true
Рекурсивно слить или перезаписать существующую конфигурацию, по умолчанию истинно.

Возвращаемое значение

mixed
Значение конфигурации, которое читается, или сам объект при операциях записи.

Исключения

Cake\Core\Exception\Exception
При попытке установить недействительный ключ.

configShallowsource 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']);

Параметры

строка|массив $key
Ключ для установки или весь массив конфигурации.
смешанный тип|null $value необязательно null
Значение для установки.

Возвращаемое значение

mixed
$this Сам объект.

Методы, используемые из Cake\Log\LogTrait

logsource public

log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )

Удобный метод для записи сообщения в журнал. См. Log::write() для получения дополнительной информации о записи в журналы.

Параметры

смешанный тип $msg
Сообщение журнала.
целое число|строка $level необязательно LogLevel::ERROR
Уровень ошибки.
строка|массив $context необязательно []
Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращаемое значение

boolean
Успех записи в журнал.

Резюме констант

string ALL

Константа для 'всех'

'all'

Резюме свойств

$_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 - Управление обработкой несанкционированного доступа.
    • По умолчанию, неавторизованный пользователь перенаправляется на URL-адрес источника ссылки или $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'
]

$_storagesource

protected Cake\Auth\Storage\StorageInterface

Объект хранения.

$allowedActionssource

public array

Действия контроллера, для которых не требуется проверка пользователя.

См.

Cake\Controller\Component\AuthComponent::allow()
[]

$componentssource

public array

Другие компоненты, используемые AuthComponent

['RequestHandler', 'Flash']

$requestsource

public Cake\Network\Request

Объект запроса

$responsesource

public Cake\Network\Response

Объект ответа

$sessionsource

public Cake\Network\Session

Экземпляр объекта Session

Устарело

3.1.0 Будет удалено в 4.0

Наследуемые свойства от Cake\Controller\Component

$_componentMapsource

protected array

Таблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.

[]

$_registrysource

protected Cake\Controller\ComponentRegistry

Класс реестра компонентов, используемый для ленивой загрузки компонентов.

Свойства, используемые из Cake\Core\InstanceConfigTrait

$_configsource

protected array

Настройки выполнения

[]

$_configInitializedsource

protected boolean

Указывает, была ли настройка свойства уже настроена значениями по умолчанию

false

Свойства, используемые из Cake\Event\EventDispatcherTrait

$_eventClasssource

protected string

Имя класса по умолчанию для новых объектов событий.

'\Cake\Event\Event'

$_eventManagersource

protected Cake\Event\EventManager

Экземпляр Cake\Event\EventManager, который используется этим объектом для передачи внутренних событий.

null

© 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.1/class-Cake.Controller.Component.AuthComponent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API