php - 为未经授权的用户禁用内置身份验证器错误 Yii2
问题描述
我有一个有很多动作的控制器。现在我想使用基于令牌的身份验证,所以我改变了这样的行为:
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
解决方案
您可以使用$optional
属性来配置身份验证应该是可选的操作(不应该抛出错误)。如果它对所有动作都是可选的,您可以使用*
而不是动作名称:
public function behaviors()
{
return [
'authenticator' => [
'class' => CompositeAuth::className(),
'optional' => ['*'],
// ...
]
];
}
推荐阅读
- django - 从 Git 安装的 Django 应用程序但未找到
- python - keras score acc 和最大概率准确度的不同分数
- mysql - ';' 上的 REPLACE 语法中的 1064 SQL 错误 象征
- angular - ngFor 不会呈现我的 obersavle 响应,但它会插入我添加到数组中的旧值?
- android - 问题(Xamarin Visual Studio)来宾在 7 秒后不在线
- c# - 将实体框架与 Pomelo 一起使用时 MySqlParameter 类型冲突
- qml - 插入符号位置 QtQuick TextField
- jenkins - Jenkins 管道:在“使用参数构建”中隐藏选定的参数
- sql - SQL Server 2016 中的数组到 json 和行到 json
- c++ - 如何将文本文件转换为 MPI_Bcast 可以发送的格式?