2017-01-23 1 views
0

나는 successifully 설정 successifully 올바르게하지만, 액세스 제어 필터가 항상 항상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; 
} 

에게 위의 액세스 제어 필터를 필요 로그인 반환하지 못하는 사용자를 식별 휴식 API를

그러나 행동 액세스 제어 필터가 실패하는 이유가 될 수 무엇

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

} 

으로 컨트롤러에 rewrting 다음을 제거하고 후 컨트롤러에 체크인 할 때 예상대로 작동합니다.

답변

0

먼저 시도해보십시오. 'roles' => ['@'],이 주석 처리되었습니다. 현재 로그인 한 사용자보다 작동하는 경우 역할이 없습니다.

관련 문제