我有一个执行许多动作的控制器。现在,我想使用基于令牌的身份验证,因此我更改了这样的行为:
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
答案 0 :(得分:1)
您可以使用$optional
属性来配置身份验证为可选(不应抛出错误)的操作。如果对于所有操作它都是可选的,则可以使用connectedCallback() {
const shadowRoot = this.attachShadow({
mode: 'closed'
});
....
customElements.define('compo-login', CompoLogin);
代替操作名称:
*