2016-05-15 12 views
1

私は私のAPIをテストするために郵便配達を使用していないんだけど、すべての要求が無効な資格情報を要求しているYii2休憩API基本認証の無効な資格

を言っているよう何らかの理由でそれはもはや機能します。

デバッガで、Authorization要求ヘッダーが表示されないことがわかりました。私は郵便配達員に他のヘッダーを追加してテストしましたが、それらは表示されます。

私はcommon\models\Userにアクセストークンで検索するユーザモデルの設定があります。

public static function findIdentityByAccessToken($token, $type = null) 
    { 
     return static::findOne(['access_token' => $token]); 
    } 

をそして、私は、コントローラの私の行動機能でこれを持っている:ここでは

public function behaviors() 
    { 
     $behaviors = parent::behaviors(); 
     $behaviors['authenticator'] = [ 
      'class' => HttpBasicAuth::className(), 
     ]; 
     $behaviors['access'] = [ 
      'class' => AccessControl::className(), 
      'rules' => [ 
       [ 
        'allow' => true, 
        'roles' => ['@'], 
        'verbs' => ['GET'], 
       ], 
      ], 
     ]; 
     return $behaviors; 
    } 

はのコンポーネントセクションです私のmain.phpファイル:

'components' => [ 
     'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => false, 
     ], 
     'log' => [ 
      'targets' => [ 
       [ 
        'class' => 'yii\log\DbTarget', 
        'levels' => ['error', 'warning'], 
       ], 
      ], 
     ], 
     'urlManager' => [ 
      'enablePrettyUrl' => true, 
      'enableStrictParsing' => true, 
      'showScriptName' => false, 
      'rules' => [ 
       'v1/login' => 'v1/login', 
       ['class' => 'yii\rest\UrlRule', 'controller' => ['v1/user']], 
       ['class' => 'yii\rest\UrlRule', 'controller' => ['v1/userinfo']], 
       'v1/<controller>/<action>' => 'v1/<controller>/<action>', 
      ], 
     ], 
     'request' => [ 
      'parsers' => [ 
       'application/json' => 'yii\web\JsonParser', 
      ] 
     ] 
    ], 

答えて

0

Apacheが承認ヘッダーを隠していたので、CGIPassAuth onを自分のディレクトリ構成に追加する必要がありました。

0

あなたはBで承認ヘッダーを渡す必要がありますあなたのAPIのasic形式。 Ex-基本{トークン}

+0

私はリクエストに合格しますが、それを渡すために必要なコードには何かがありますか? –

関連する問題