2016-05-03 3 views
0

У меня есть следующий код в папке/контроллера АФИ в моем проекте:Yii2 REST API аутентификации с параметрами GET

class TunnelVentilationDampersController extends ActiveController 
{ 
    public $modelClass = 'common\models\TunnelVentilationDamper'; 


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

    $behaviors['authenticator'] = [ 

     // multiple authenticators 
     'class' => CompositeAuth::className(), 
     'authMethods' => [ 
     [ 
      // first authenticator 
      'class' => HttpBasicAuth::className(), 
      'auth' => function($username, $password) 
      { 
      $out = null; 
      $user = User::findByUsername($username); 
      if($user!=null) 
      { 
       if($user->validatePassword($password)) 
       $out = $user; 
      } 
      // user is null 
      return $out; 
      } 
     ], 
     [ 
      'class' => QueryParamAuth::className(), 
     ] 
     ] 
    ]; 

    return $behaviors; 
    } 

    public function actionAccessTokenByUser($username, $passwordHash) 
    { 
    $accessToken = null; 
    $user = User::findOne(['username' => $username, 'password_hash' => $passwordHash]); 

    if($user!=null) 
    { 
     $user->access_token = \Yii::$app->security->generateRandomString(); 
     $user->save(); 
     $accessToken = $user->access_token; 
    }   

    return [ 'access-token' => $accessToken ]; 
    }  
} 

Я хочу, чтобы отправить свое имя пользователя и passwordHash как параметры GET. Но когда я получаю доступ к URL-адресу: http://localhost/assetMaint/api/web/tunnel-ventilation-dampers/access-token-by-user?username=foo&passwordHash= $ 2a $ 10 $ vCkYc3H9OvSVt9n.R/mi3ORO2.89CJvZnj1AfYxhBGS.xlSOBfwlO. Я получаю такую ​​ошибку ответа:

Куда я иду не так?

ответ

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