Класс yii\filters\auth\HttpBasicAuth
| Наследование | yii\filters\auth\HttpBasicAuth » yii\filters\auth\AuthMethod » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\filters\auth\AuthInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/filters/auth/HttpBasicAuth.php |
HttpBasicAuth — это фильтр действий, который поддерживает метод HTTP Basic аутентификации.
Вы можете использовать HttpBasicAuth, прикрепив его как поведение к контроллеру или модулю, как показано ниже:
public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
],
];
}
Стандартная реализация HttpBasicAuth использует метод loginByAccessToken() компонента приложения user и передает только имя пользователя. Эта реализация используется для аутентификации API-клиентов.
Если вы хотите аутентифицировать пользователей с помощью имени пользователя и пароля, вам необходимо предоставить функцию $auth, например, следующим образом:
public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
$user = User::find()->where(['username' => $username])->one();
if ($user->verifyPassword($password)) {
return $user;
}
return null;
},
],
];
}
Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $auth | callable | PHP вызываемый объект, который будет аутентифицировать пользователя с использованием информации HTTP basic auth. | yii\filters\auth\HttpBasicAuth |
| $except | массив | Список идентификаторов действий, к которым этот фильтр не должен применяться. | yii\base\ActionFilter |
| $only | массив | Список идентификаторов действий, к которым этот фильтр должен применяться. | yii\base\ActionFilter |
| $optional | массив | Список идентификаторов действий, к которым будет применяться фильтр, но при сбое аутентификации не произойдет ошибка. | yii\filters\auth\AuthMethod |
| $owner | yii\base\Component|null | Владелец данного поведения | yii\base\Behavior |
| $realm | строка | Область HTTP аутентификации | yii\filters\auth\HttpBasicAuth |
| $request | yii\web\Request | Текущий запрос. | yii\filters\auth\AuthMethod |
| $response | yii\web\Response | Ответ, который будет отправлен. | yii\filters\auth\AuthMethod |
| $user | yii\web\User | Объект пользователя, представляющий состояние аутентификации пользователя. | yii\filters\auth\AuthMethod |
Общественные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| afterAction() | Этот метод вызывается сразу после выполнения действия. | yii\base\ActionFilter |
| afterFilter() | yii\base\ActionFilter | |
| attach() | Прикрепляет объект поведения к компоненту. | yii\base\Behavior |
| authenticate() | Проверяет текущего пользователя. | yii\filters\auth\HttpBasicAuth |
| beforeAction() | Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить подготовку действия в последний момент. | yii\filters\auth\AuthMethod |
| beforeFilter() | yii\base\ActionFilter | |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| challenge() | Генерирует вызовы при ошибке аутентификации. | yii\filters\auth\HttpBasicAuth |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| detach() | Открепляет объект поведения от компонента. | yii\base\Behavior |
| events() | Объявляет обработчики событий для событий $owner. | yii\base\Behavior |
| handleFailure() | Обрабатывает ошибку аутентификации. | yii\filters\auth\AuthMethod |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| getActionId() | Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю. | yii\base\ActionFilter |
| isActive() | Возвращает значение, указывающее, активен ли фильтр для данного действия. | yii\base\ActionFilter |
| isOptional() | Проверяет, является ли аутентификация необязательной для данного действия. | yii\filters\auth\AuthMethod |
Подробное описание свойств
$auth общественное свойство
PHP вызываемый объект, который будет аутентифицировать пользователя с помощью информации HTTP basic auth. Вызываемый объект получает имя пользователя и пароль в качестве параметров. Он должен вернуть объект идентификации, соответствующий имени пользователя и паролю. Null должен быть возвращён, если такой объект не найден.
Следующий код является типичной реализацией этого вызываемого объекта:
function ($username, $password) {
return \app\models\User::findOne([
'username' => $username,
'password' => $password,
]);
}
Если это свойство не установлено, информация о имени пользователя будет рассматриваться как токен доступа, а информация о пароле будет проигнорирована. Будет вызван метод yii\web\User::loginByAccessToken() для аутентификации и входа пользователя.
public callable $auth = null
$realm общественное свойство
Область HTTP аутентификации
public string $realm = 'api'
Подробное описание методов
authenticate() public метод
Проверяет аутентификацию текущего пользователя.
| public yii\web\IdentityInterface authenticate ( $user, $request, $response ) | ||
|---|---|---|
| $user | yii\web\User | |
| $request | yii\web\Request | |
| $response | yii\web\Response | |
| return | yii\web\IdentityInterface |
Идентификатор аутентифицированного пользователя. Если информация об аутентификации отсутствует, возвращается null. |
| throws | yii\web\UnauthorizedHttpException |
если информация об аутентификации предоставлена, но неверна. |
challenge() public метод
Генерирует запросы на аутентификацию при неудачной попытке.
Например, могут быть сгенерированы соответствующие HTTP-заголовки.
| public void challenge ( $response ) | ||
|---|---|---|
| $response | yii\web\Response | |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-auth-httpbasicauth.html