Класс DigestAuthenticate
Адаптер аутентификации Digest для компонента Auth.
Обеспечивает поддержку аутентификации HTTP Digest для компонента Auth. В отличие от большинства адаптеров компонента Auth, DigestAuthenticate требует специального хеша пароля, соответствующего RFC2617. Вы можете создать этот пароль с помощью DigestAuthenticate::password(). Если вы хотите использовать аутентификацию digest наряду с другими методами аутентификации, рекомендуется хранить аутентификацию digest отдельно.
Клиенты, использующие аутентификацию Digest, должны поддерживать куки. Поскольку компонент Auth идентифицирует пользователей на основе содержимого сессии, клиенты без поддержки куки не будут работать должным образом.
Использование аутентификации 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
-
BasicAuthenticate -
DigestAuthenticate
С: 2.0
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Component/Auth/DigestAuthenticate.php
Краткое описание свойств
-
$settingspublicНастройки для этого объекта.array
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор, завершает настройку для аутентификации digest.
- _getDigest() protectedПолучает заголовки digest из запроса/окружения.
- generateResponseHash() publicГенерирует хеш ответа для заданного массива digest.
- getUser() publicПолучает пользователя на основе информации в запросе. Используется для аутентификации без куки для бесклассовых клиентов.
- loginHeaders() publicГенерирует заголовки входа.
- parseAuthData() publicПарсит заголовки аутентификации digest и разбивает их.
- Создает хеш пароля аутентификации 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 - Объект запроса.
Возвращает
mixedЛибо 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 аутентификации. Будет использовать настроенную модель User и попытается выполнить вход с использованием HTTP аутентификации.
Параметры
-
CakeRequest$request - Запрос для проверки.
-
CakeResponse$response - Ответ для добавления заголовков.
Возвращает
mixedЛибо 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 является строкой.
Возвращает
boolean|массивЛибо false при ошибке, либо массив данных пользователя.
_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.
https://api.cakephp.org/2.9/class-DigestAuthenticate.html