Spec-Zone.ru › CakePHP 3.1

Класс DigestAuthenticate

Адаптер аутентификации Digest для компонента Auth.

Обеспечивает поддержку HTTP-аутентификации Digest для компонента AuthComponent.

Использование аутентификации Digest

В массиве компонентов вашего контроллера добавьте auth и необходимые настройки

public $components = [
    'Auth' => [
        'authenticate' => ['Digest']
    ]
];

Также необходимо установить AuthComponent::$sessionKey = false; в методе beforeFilter() вашего контроллера AppController, чтобы предотвратить отправку CakePHP куки сессии клиенту.

Поскольку HTTP-аутентификация Digest является бессостоятельной, вам не нужен action login() в вашем контроллере. Данные пользователя будут проверяться при каждом запросе. Если не предоставлены допустимые данные, этот поставщик аутентификации отправит необходимые заголовки аутентификации, которые вызовут диалог входа в браузере/клиенте.

Вы также можете использовать $this->Auth->unauthorizedRedirect = false;. Это заставит AuthComponent бросать исключение ForbiddenException вместо перенаправления на другую страницу.

Генерация паролей, совместимых с аутентификацией Digest.

DigestAuthenticate требует специального хеша пароля, соответствующего RFC2617. Вы можете сгенерировать этот пароль, используя DigestAuthenticate::password()

$digestPass = DigestAuthenticate::password($username, $password, env('SERVER_NAME'));

Если вы хотите использовать аутентификацию digest вместе с другими методами аутентификации, рекомендуется хранить данные аутентификации digest отдельно. Например, User.digest_pass можно использовать для пароля digest, а User.password — для хранения хеша пароля для использования с другими методами, такими как Basic или Form.

Cake\Auth\BaseAuthenticate реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait
Extended by Cake\Auth\BasicAuthenticate
Extended by Cake\Auth\DigestAuthenticate
Пространство имён: Cake\Auth
Расположение: Auth/DigestAuthenticate.php

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

__constructsource public

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

Конструктор

Помимо ключей, указанных в BaseAuthenticate::$_defaultConfig, DigestAuthenticate использует следующие дополнительные ключи:

  • realm Область аутентификации, по умолчанию — имя сервера.
  • nonce Случайный nonce, используемый для аутентификации. По умолчанию uniqid().
  • qop По умолчанию 'auth', в настоящее время другие значения не поддерживаются.
  • opaque Строка, которая должна быть возвращена клиентами без изменений. По умолчанию md5($config['realm'])

Параметры

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

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

Cake\Auth\BaseAuthenticate::__construct()

_getDigestsource protected

_getDigest( Cake\Network\Request $request )

Получает заголовки digest из запроса/окружения.

Параметры

Cake\Network\Request $request
Объект запроса.

Возвращает

array
Массив информации о digest.

generateResponseHashsource public

generateResponseHash( array $digest , string $password , string $method )

Генерирует хеш ответа для заданного массива digest.

Параметры

массив $digest
Информация о digest, содержащая данные из DigestAuthenticate::parseAuthData().
строка $password
Хеш пароля digest, сгенерированный с помощью DigestAuthenticate::password()
строка $method
Метод запроса

Возвращает

string
Хеш ответа

getUsersource public

getUser( Cake\Network\Request $request )

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

Параметры

Cake\Network\Request $request
Объект запроса.

Возвращает

mixed
Либо false, либо массив информации о пользователе

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

Cake\Auth\BasicAuthenticate::getUser()

loginHeaderssource public

loginHeaders( Cake\Network\Request $request )

Генерирует заголовки входа

Параметры

Cake\Network\Request $request
Объект запроса.

Возвращает

string
Заголовки для входа.

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

Cake\Auth\BasicAuthenticate::loginHeaders()

parseAuthDatasource public

parseAuthData( string $digest )

Парсит заголовки аутентификации digest и разделяет их.

Параметры

строка $digest
Необработанные заголовки аутентификации digest.

Возвращает

array|null
Массив заголовков аутентификации digest

passwordsource public static

password( string $username , string $password , string $realm )

Создаёт хеш пароля аутентификации digest для хранения

Параметры

строка $username
Имя пользователя, используемое в хеше digest.
строка $password
Незахешированный пароль для создания хеша digest.
строка $realm
Область, для которой предназначен пароль.

Возвращает

string
Захешированный пароль, который можно использовать позже для аутентификации Digest.

Наследуемые методы из Cake\Auth\BasicAuthenticate

authenticatesource public

authenticate( Cake\Network\Request $request , Cake\Network\Response $response )

Аутентифицирует пользователя с помощью HTTP-аутентификации. Использует настроенную модель User и пытается выполнить вход с помощью HTTP-аутентификации.

Параметры

Cake\Network\Request $request
Запрос для аутентификации.
Cake\Network\Response $response
Ответ для добавления заголовков.

Возвращает

mixed
В случае ошибки — false, в случае успеха — массив данных пользователя.

unauthenticatedsource public

unauthenticated( Cake\Network\Request $request , Cake\Network\Response $response )

Обрабатывает попытку доступа без аутентификации, отправляя соответствующие заголовки входа

Параметры

Cake\Network\Request $request
Объект запроса.
Cake\Network\Response $response
Объект ответа.

Использует

Cake\Network\Exception\UnauthorizedException
\Cake\Network\Exception\UnauthorizedException

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

Cake\Auth\BaseAuthenticate::unauthenticated()

Наследуемые методы из Cake\Auth\BaseAuthenticate

_findUsersource protected

_findUser( string $username , string|null $password null )

Находит запись пользователя, используя предоставленное имя пользователя и пароль.

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

Параметры

строка $username
Имя пользователя/идентификатор.
строка|null $password необязательно null
Пароль, если не указан, проверка пароля пропускается, и возвращается результат find.

Возвращает

boolean|array
В случае ошибки — false, в случае успеха — массив данных пользователя.

_querysource protected

_query( string $username )

Получает объект запроса для извлечения пользователя из базы данных.

Параметры

строка $username
Имя пользователя/идентификатор.

Возвращает

Cake\ORM\Query
\Cake\ORM\Query
END_OF_DOCUMENT_MARKER ```

implementedEventssource public

implementedEvents( )

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

Класс аутентификации может следить за следующими событиями, которые генерирует AuthComponent:

  • Auth.afterIdentify - Срабатывает после того, как пользователь был идентифицирован с помощью одного из настроенных классов аутентификации. Функция обратного вызова должна иметь сигнатуру, например, afterIdentify(Event $event, array $user), когда $user — это запись идентифицированного пользователя.
  • Auth.logout - Срабатывает при вызове AuthComponent::logout(). Функция обратного вызова должна иметь сигнатуру, например, logout(Event $event, array $user), где $user — пользователь, который собирается выйти из системы.

Возвращает

array
Список событий, за которыми следит этот класс. По умолчанию [].

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

needsPasswordRehashsource public

needsPasswordRehash( )

Возвращает значение, указывающее, требуется ли повторное хеширование пароля, хранящегося в хранилище для вошедшего пользователя, с помощью другого алгоритма.

Возвращает

boolean
bool

passwordHashersource public

passwordHasher( )

Возвращает объект хеширования паролей.

Возвращает

Cake\Auth\AbstractPasswordHasher
Экземпляр хеширования паролей

Выбрасывает

RuntimeException
Если класс хеширования паролей не найден или он не расширяет AbstractPasswordHasher

Методы, используемые из 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
Сам объект.

Свойства, унаследованные от Cake\Auth\BaseAuthenticate

$_defaultConfigsource

protected массив

Настройки по умолчанию для этого объекта.

  • fields Поля, используемые для идентификации пользователя.
  • userModel Псевдоним таблицы пользователей, по умолчанию Users.
  • finder Метод поиска для извлечения записи пользователя. По умолчанию 'all'.
  • passwordHasher Класс хеширования паролей. Может быть строкой, указывающей имя класса, или массивом, содержащим ключ className, любые другие ключи будут переданы как настройки в класс. По умолчанию 'Default'.
  • Параметры scope и contain устарели с версии 3.1. Используйте пользовательский поиск вместо этого для изменения запроса для извлечения записи пользователя.
[
    'fields' => [
        'username' => 'username',
        'password' => 'password'
    ],
    'userModel' => 'Users',
    'scope' => [],
    'finder' => 'all',
    'contain' => null,
    'passwordHasher' => 'Default'
]

$_needsPasswordRehashsource

protected булево

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

false

$_passwordHashersource

protected Cake\Auth\AbstractPasswordHasher

Экземпляр хеширования паролей.

$_registrysource

protected Cake\Controller\ComponentRegistry

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

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

$_configsource

protected массив

Конфигурация выполнения

[]

$_configInitializedsource

protected булево

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

false

© 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.Auth.DigestAuthenticate.html

Spec-Zone.ru

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