为未授权用户禁用内置身份验证器错误Yii2

时间:2018-06-24 09:22:55

标签: php yii2 yii2-basic-app

我有一个执行许多动作的控制器。现在,我想使用基于令牌的身份验证,因此我更改了这样的行为:

public function behaviors()
{
    return [
        'authenticator' => [
            'class' => CompositeAuth::className(),
            'only' => [
                'logout',
                'revoke'
            ],
            'authMethods' => [
                HttpBasicAuth::className(),
                HttpBearerAuth::className(),
                QueryParamAuth::className(),
            ],
        ]
    ];
}

此代码运行良好,但是存在一个问题。 我想由我自己(不是Yii)来处理未经授权的用户,但是当有未经授权的用户向我的操作发送请求时,我的操作将不起作用,并且会返回Yii的默认错误。

我如何告诉Yii仅对用户进行身份验证(因为我想使用Yii::$app->user->isGuest)并且不发送默认错误?

更新:我只想禁用身份验证器错误,我需要其他错误。

Yii2

PHP 7.2

1 个答案:

答案 0 :(得分:1)

您可以使用$optional属性来配置身份验证为可选(不应抛出错误)的操作。如果对于所有操作它都是可选的,则可以使用connectedCallback() { const shadowRoot = this.attachShadow({ mode: 'closed' }); .... customElements.define('compo-login', CompoLogin); 代替操作名称:

*