2017-01-23 4 views
0

У меня есть successifully установки отдыха апи, который successifully идентифицирует пользователь правильно, но фильтры контроля доступа всегда терпят неудачу возвращается, что Войти требуютсяYii2 REST 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; 
} 

выше фильтров контроля доступа всегда терпит неудачу

Но после их удаления, а затем rewrting в контроллере, как

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

} 

Что может быть причина, почему контроль доступа поведение фильтра не удается и все же при проверке контроллера он работает как ожидалось

ответ

0

Попробуйте сначала 'roles' => ['@'],. Если он работает, чем текущий пользователь вошел в систему, он не имеет никакой роли.

Смежные вопросы