2017-01-23 10 views
0

私はsuccessifullyユーザーを正しく識別しますが、アクセス制御フィルタが常にログインリターンを失敗したのREST APIをYii2残りのAPI行動

public function behaviors() 
{ 
    $behaviors = parent::behaviors(); 

    $auth = $behaviors['authenticator'] = [ 
     'class' => HttpBearerAuth::className(), 
     'only' => ['can-access'], 
    ]; 
    $behaviors['access'] = [ //This fails 
     'class' => AccessControl::className(), 
     'only' => ['can-access'], 
     'rules' => [ 
      [ 
       'actions' => ['can-access'], 
       'allow' => true, 
       'roles' => ['@'], 
      ], 
     ], 
    ]; 
    $behaviors['contentNegotiator'] = [ 
     'class' => ContentNegotiator::className(), 
     'formats' => [ 
      'application/json' => Response::FORMAT_JSON, 
     ], 
    ]; 

    ]; 


    $behaviors['authenticator']['except'] = ['options']; 
    return $behaviors; 
} 

A以上のアクセス制御フィルタは常に

を失敗した要求されsuccessifullyセットアップを持っています

しかし、行動のアクセス制御フィルタが失敗した理由を何ができるか

public function actionCanAccess() 
{ 
    echo $access = Yii::$app->user->isGuest; //this returns false 

} 

として、コントローラにrewrtingし、それらを削除した後、それでもコントローラをチェックインすると、正常に動作します。

答えて

0

最初に試してみてください'roles' => ['@'],がコメントアウトされました。ログインしている現在のユーザーよりも機能する場合、役割はありません。