2015-10-26 6 views
3

Я аутентичность на моем регулятор с помощью HTTPBearerAuthYii2 AccessControl давая Запретные 403 при использовании HTTPBearerAuth в Rest API

public function behaviors() 
{ 
    $behaviors['authenticator'] = [ 
     'class' => CompositeAuth::className(), 
     'authMethods' => [ 
      HttpBearerAuth::className(), 
     ], 
    ]; 

    return $behaviors; 
} 

На моем UserController простирающегося базовый контроллер и с помощью AccessControl, чтобы гость получить доступ к регистрационной информации.

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

    $behaviors['access'] = [ 
     'class' => AccessControl::className(), 
     'only' => ['login', 'logout', 'signup'], 
     'rules' => [ 
      [ 
       'actions' => ['login'], 
       'allow' => true, 
       'roles' => ['?'], 
      ], 
      [ 
       'actions' => ['logout'], 
       'allow' => true, 
       'roles' => ['@'], 
      ], 
     ], 
    ]; 

    $behaviors['verbs'] = [ 
     'class' => VerbFilter::className(), 
     'actions' => [ 
      'logout' => ['post'], 
     ], 
    ]; 

    return $behaviors; 
} 

Когда я пытаюсь получить доступ в систему без подробностей аутентификации, я получаю

{ 
    "name": "Unauthorized", 
    "message": "You are requesting with an invalid credential.", 
    "code": 0, 
    "status": 401, 
    "type": "yii\web\UnauthorizedHttpException" 
} 

Несанкционированное 401. С аутентификация, я получаю

{ 
    "name": "Forbidden", 
    "message": "You are not allowed to perform this action.", 
    "code": 0, 
    "status": 403, 
    "type": "yii\web\ForbiddenHttpException" 
} 

Почему я получаю это?

ответ

0

Вы можете получить AccessControl и использовать HTTPBearerAuth в поведении ребенка с использованием only или except.

public function behaviors() 
{ 
    $behaviors = parent::behaviors(); 
    //authentication only applies to actionIndex in child controller 
    $behaviors['authenticator']['only'][] = 'index'; 

    return $behaviors; 
} 

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

  • Нет связанных вопросов^_^