Класс 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
-
BasicAuthenticate -
DigestAuthenticate
Авторские права: 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 - Объект ответа.
Исключения
UnauthorizedExceptionUnauthorizedException
Переопределяет
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 - Пользователь, который собирается выйти из системы.
passwordHashersource public
passwordHasher( )
Возвращает объект хеширования паролей
Возвращает
AbstractPasswordHasherЭкземпляр хешера паролей
Выбрасывает
CakeExceptionЕсли класс хешера паролей не найден или он не расширяет AbstractPasswordHasher
Краткое описание свойств
Наследуемые свойства от BaseAuthenticate
$_Collectionsource
protected ComponentCollection
Коллекция компонентов, используемая для получения дополнительных компонентов.
© 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