Spec-Zone.ru › CakePHP 2.7

Класс DigestAuthenticate

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

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

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

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

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

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

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

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

Из-за спецификации аутентификации 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
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
С момента: 2.0
Расположено в Cake/Controller/Component/Auth/DigestAuthenticate.php

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

__constructsource public

__construct( ComponentCollection $collection , array $settings )

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

Параметры

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

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

BasicAuthenticate::__construct()

_getDigestsource protected

_getDigest( )

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

Возвращает

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

generateResponseHashsource public

generateResponseHash( array $digest , string $password )

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

Параметры

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

Возвращает

string
Хэш ответа

getUsersource public

getUser( CakeRequest $request )

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

Параметры

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

Возвращает

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

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

BasicAuthenticate::getUser()

loginHeaderssource public

loginHeaders( )

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

Возвращает

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

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

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.

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

authenticatesource public

authenticate( CakeRequest $request , CakeResponse $response )

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

Параметры

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

Возвращает

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

unauthenticatedsource public

unauthenticated( CakeRequest $request , CakeResponse $response )

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

Параметры

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

Исключения

UnauthorizedException
UnauthorizedException

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

BaseAuthenticate::unauthenticated()

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

_findUsersource protected

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

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

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

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

Параметры

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

Возвращает

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

_passwordsource protected

_password( string $password )

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

Устарело

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

Параметры

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

Возвращает

string
Хешированная форма пароля.

implementedEventssource public

implementedEvents( )

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

Возвращает

array
события => обратные вызовы.

Реализация

CakeEventListener::implementedEvents()

logoutsource public

logout( array $user )

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

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

Параметры

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

passwordHashersource public

passwordHasher( )

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

Возвращает

AbstractPasswordHasher
Экземпляр хешера паролей

Выбрасывает

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

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

$settingssource

public массив

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

  • fields Поля, используемые для идентификации пользователя.
  • userModel Имя модели пользователя, по умолчанию User.
  • userFields Массив полей для извлечения из модели пользователя, 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',
)

Наследуемые свойства от BaseAuthenticate

$_Collectionsource

protected ComponentCollection

Коллекция компонентов, используемая для получения дополнительных компонентов.

$_passwordHashersource

protected AbstractPasswordHasher

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

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

Spec-Zone.ru

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