Yii2 带操作的Yi2 rest身份验证可以处理用户和来宾
我使用accessToken授权用户,因此我希望使用可选accessToken执行操作 我们在none-rest控制器中具有这种能力 像这样:Yii2 带操作的Yi2 rest身份验证可以处理用户和来宾,yii2,Yii2,我使用accessToken授权用户,因此我希望使用可选accessToken执行操作 我们在none-rest控制器中具有这种能力 像这样: public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'only' => ['login', 'logout', 'signup'],
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['login', 'logout', 'signup'],
'rules' => [
[
'allow' => true,
'actions' => ['login', 'signup'],
'roles' => ['?','@'],
],
],
],
];
}
排除不工作,因为如果用户发送令牌授权,他们将视为访客,而不是用户。
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator']['except'] = ['fetch-event','fetch-tournament-event'];
return $behaviors;
}
有一个属性使auth filter在令牌存在时处理身份验证,但在令牌丢失时不引发异常
您只需在可选
属性中设置操作ID,而不是除
属性外:
公共功能行为()
{
$behaviors=parent::behaviors();
$behaviors['authenticator']['optional']=['fetch-event','fetch-contraction-event'];
返回$行为;
}
看起来你需要一个自定义验证器。你应该使用除了
而不是可选的@Godzilla不应该。这两个属性做完全不同的事情。except
属性将跳过给定操作的筛选器执行。因此,即使请求中存在访问令牌,user
组件也将保持guest
状态。