Class yii\filters\auth\CompositeAuth

继承yii\filters\auth\CompositeAuth » yii\filters\auth\AuthMethod » yii\base\ActionFilter » yii\base\Behavior » yii\base\BaseObject
实现yii\base\Configurable, yii\filters\auth\AuthInterface
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/filters/auth/CompositeAuth.php

CompositeAuth 是一个动作过滤器, 可同时支持多种身份验证方法.

通过 $authMethods 配置 CompositeAuth 包含的身份验证方法, 这是受支持的身份验证类配置的列表.

以下示例显示了如何支持三种身份验证方法:

public function behaviors()
{
    return [
        'compositeAuth' => [
            'class' => \yii\filters\auth\CompositeAuth::className(),
            'authMethods' => [
                \yii\filters\auth\HttpBasicAuth::className(),
                \yii\filters\auth\QueryParamAuth::className(),
            ],
        ],
    ];
}

公共属性

隐藏继承的属性

属性类型描述定义在
$authMethods array 支持的身份验证方法. yii\filters\auth\CompositeAuth
$except array 此过滤器不适用的动作ID列表, 列表中的动作将不被过滤. yii\base\ActionFilter
$only array 此过滤器应适用的动作ID列表, 仅列表中的动作被过滤. yii\base\ActionFilter
$optional array 此过滤器将应用于的动作 ID 列表, 但身份验证失败不会导致错误. yii\filters\auth\AuthMethod
$owner yii\base\Component|null 该行为的所有者. yii\base\Behavior
$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\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
afterAction() 执行动作后立即调用此方法. yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
attach() 将行为对象附加到组件. yii\base\ActionFilter
authenticate() 验证当前用户. yii\filters\auth\CompositeAuth
beforeAction() 在执行动作之前(在所有可能的过滤器之后)立即调用该方法. yii\filters\auth\CompositeAuth
beforeFilter() yii\base\ActionFilter
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
challenge() 身份验证失败时产生的挑战. yii\filters\auth\CompositeAuth
className() 返回此类的完全限定名称. yii\base\BaseObject
detach() 从组件中分离行为对象. yii\base\ActionFilter
events() 声明 所有者 事件的事件处理程序. yii\base\Behavior
handleFailure() 处理身份验证失败. yii\filters\auth\AuthMethod
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject

受保护的方法

隐藏继承的方法

方法描述定义在
getActionId() 通过将 yii\base\Action::$uniqueId 转换为相对于模块的ID来返回动作ID. yii\base\ActionFilter
isActive() 返回一个值, 指示过滤器对于给定动作是否处于活动状态. yii\base\ActionFilter
isOptional() 检查验证对于给定的动作是否可选. yii\filters\auth\AuthMethod

属性详情

$authMethods public 属性

支持的身份验证方法. 此属性应采用受支持的身份验证方法的列表, 每种方法均由身份验证类或配置表示.

如果此属性为空, 将不执行身份验证.

Note: auth 方法类必须实现 yii\filters\auth\AuthInterface 接口.

public array $authMethods = []

方法详情

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

如果提供了身份验证信息, 但是无效.

beforeAction() public 方法

在执行动作之前(在所有可能的过滤器之后)立即调用该方法.

你可以重写此方法, 以便为该动作做最后的准备.

public boolean beforeAction ( $action )
$action yii\base\Action

要执行的动作.

return boolean

该动作是否应该继续执行.

challenge() public 方法

身份验证失败时产生的挑战.

例如, 可能会生成一些适当的 HTTP 表头.

public void challenge ( $response )
$response yii\web\Response