Spec-Zone.ru › CakePHP 2.8

Класс DigestAuthenticate

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

Обеспечивает поддержку HTTP-аутентификации Digest для компонента Auth. В отличие от большинства адаптеров компонента Auth, DigestAuthenticate требует специального хеша пароля, соответствующего RFC2617. Вы можете создать этот пароль с помощью DigestAuthenticate::password(). Если вы хотите использовать аутентификацию digest наряду с другими методами аутентификации, рекомендуется хранить аутентификацию digest отдельно.

Клиенты, использующие аутентификацию Digest, должны поддерживать куки. Поскольку AuthComponent идентифицирует пользователей на основе содержимого сеанса, клиенты без поддержки куки не будут работать должным образом.

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

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

public $components = array(
    'Auth' => array(
        'authenticate' => array('Digest')
    )
);

В вашей функции входа просто вызовите $this->Auth->login() без каких-либо проверок на данные POST. Это отправит заголовки аутентификации и запустит диалог входа в браузере/клиенте.

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

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

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

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

BaseAuthenticate реализует CakeEventListener
Extended by BasicAuthenticate
Extended by DigestAuthenticate
Пакет: Cake\Controller\Component\Auth
С версии: 2.0
Авторское право: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Controller/Component/Auth/DigestAuthenticate.php

Краткое описание свойств

  • $settings public
    array
    Настройки для этого объекта.

Унаследованные свойства

  • _Collection, _passwordHasher

Краткое описание методов

  • __construct() public
    Конструктор, завершает конфигурацию для аутентификации digest.
  • _getDigest() protected
    Получает заголовки digest из запроса/среды.
  • generateResponseHash() public
    Генерирует хеш ответа для заданного массива digest.
  • getUser() public
    Получает пользователя на основе информации в запросе. Используется для аутентификации без куки для бесклиентских клиентов.
  • loginHeaders() public
    Генерирует заголовки входа
  • parseAuthData() public
    Парсит заголовки аутентификации digest и разделяет их.
  • password() public static
    Создает хеш пароля аутентификации digest для хранения

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

__construct()source public

__construct( ComponentCollection $collection , array $settings )

Конструктор, завершает конфигурацию для аутентификации digest.

Параметры

ComponentCollection $collection
Коллекция компонентов, используемая в этом запросе.
массив $settings
Массив настроек.

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

BasicAuthenticate::__construct()

_getDigest()source protected

_getDigest( )

Получает заголовки digest из запроса/среды.

Возвращает

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

generateResponseHash()source public

generateResponseHash( array $digest , string $password )

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

Параметры

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

Возвращает

строка
Хеш ответа

getUser()source public

getUser( CakeRequest $request )

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

Параметры

CakeRequest $request
Объект запроса.

Возвращает

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

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

BasicAuthenticate::getUser()

loginHeaders()source public

loginHeaders( )

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

Возвращает

строка
Заголовки для входа.

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

BasicAuthenticate::loginHeaders()

parseAuthData()source public

parseAuthData( string $digest )

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

Параметры

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

Возвращает

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

password()source public static

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

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

Параметры

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

Возвращает

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

Методы, унаследованные от BasicAuthenticate

authenticate()source public

authenticate( CakeRequest $request , CakeResponse $response )

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

Параметры

CakeRequest $request
Запрос для аутентификации.
CakeResponse $response
Ответ для добавления заголовков.

Возвращает

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

unauthenticated()source public

unauthenticated( CakeRequest $request , CakeResponse $response )

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

Параметры

CakeRequest $request
Объект запроса.
CakeResponse $response
Объект ответа.

Выбрасывает

UnauthorizedException

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

BaseAuthenticate::unauthenticated()

Методы, унаследованные от BaseAuthenticate

_findUser()source protected

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

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

Параметр $username может быть (строкой) именем пользователя или массивом, содержащим условия для Model::find('first'). Если параметр $password не указан, поле пароля будет присутствовать в возвращаемом массиве.

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

Параметры

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

Возвращает

логический тип|массив
Либо false при ошибке, либо массив данных пользователя.
END_OF_DOCUMENT_MARKER

_password()source protected

_password( string $password )

Хэшировать пароль в обычном текстовом формате, чтобы он соответствовал хэшированному/зашифрованному паролю в источнике данных.

Устарело

3.0.0 С 2.4. Используйте класс PasswordHasher вместо этого.

Параметры

строка $password
Пароль в обычном текстовом формате.

Возвращает

строка
Хэшированная форма пароля.

implementedEvents()source public

implementedEvents( )

Реализованные события

Возвращает

массив
событий => обработчиков.

Реализация

CakeEventListener::implementedEvents()

logout()source public

logout( array $user )

Позволяет подключиться к AuthComponent::logout() и реализовать специализированное поведение при выходе.

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

Параметры

массив $user
Пользователь, который только что вышел.

passwordHasher()source public

passwordHasher( )

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

Возвращает

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

Выбрасывает

CakeException

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


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

$settingssource

public массив

Настройки для этого объекта.

  • fields Поля, используемые для идентификации пользователя.
  • userModel Имя модели пользователя, по умолчанию User.
  • userFields Массив полей для извлечения из модели User, null для извлечения всех. По умолчанию null.
  • scope Дополнительные условия для использования при поиске и аутентификации пользователей, например array('User.is_active' => 1).
  • recursive Значение рекурсивного ключа, переданного в find(). По умолчанию 0.
  • contain Дополнительные модели для хранения в сессии.
  • realm Область, для которой предназначена аутентификация. По умолчанию имя сервера.
  • nonce Номер, используемый для аутентификации. По умолчанию uniqid().
  • qop По умолчанию auth, другие значения не поддерживаются в настоящее время.
  • opaque Строка, которая должна быть возвращена неизменной клиентами. По умолчанию md5($settings['realm'])
array(
    'fields' => array(
        'username' => 'username',
        'password' => 'password'
    ),
    'userModel' => 'User',
    'userFields' => null,
    'scope' => array(),
    'recursive' => 0,
    'contain' => null,
    'realm' => '',
    'qop' => 'auth',
    'nonce' => '',
    'opaque' => '',
    'passwordHasher' => 'Simple',
)

© 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/2.8/class-DigestAuthenticate.html

Spec-Zone.ru

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