Yii2:如何在API中使用不同的auth方法
我正在Yii2中开发API,在这里我需要为不同的操作使用不同的身份验证方法 如何为Yii2:如何在API中使用不同的auth方法,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我正在Yii2中开发API,在这里我需要为不同的操作使用不同的身份验证方法 如何为action1、action2和action3、以及HttpBasicAuth设置action4和action5 public function behaviors() { return [ 'basicAuth' => [ 'class' => \yii\filters\auth\HttpBasicAuth::className(),
action1
、action2
和action3
、以及HttpBasicAuth
设置action4
和action5
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;
},
],
];
}
您可以附加多个身份验证行为,并使用属性指定应受每个行为影响的操作列表:
public function behaviors() {
return [
'compositeAuth' => [
'class' => \yii\filters\auth\CompositeAuth::className(),
'authMethods' => [/* ... */],
'only' => ['action1', 'action2', 'action3'],
],
'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;
},
'only' => ['action4', 'action5'],
],
];
}
请首先尝试按照中的《Yi2身份验证指南》进行操作。如果您遇到了一些问题,请给出一些示例代码,您正在努力获得更好的帮助。是的,我遵循了它,我能够在不同的API控制器中使用这两种身份验证,但在我的例子中,我必须在同一个控制器中使用2个身份验证方法。这里我使用了基本身份验证方法,但对于同一个API控制器中的某些操作,我希望使用复合身份验证方法