2016-10-07 15 views
0

コントローラーが正常に動作していて、そこに基本認証の動作を追加したいと思います。私は前にアクションのvar_dump($this->behaviors);とコントローラにbehaviors()メソッドを追加します。すべて正しいです。問題は、HttpBasicAuthがメソッドで動作しないということです。コントローラーのYii2の動作が正しく動作しない

は、ここに私のコードです:

public function behaviors() 
{ 
    return [ 
     'basicAuth' => [ 
      'class' => \yii\filters\auth\HttpBasicAuth::className(), 
      'auth' => function ($username, $password) { 
       if (! $this->isValidUser($username, $password)) { 
        return User::findByUsername($username); 
       } 

       return false; 
      } 
     ], 

    ]; 
} 

答えて

-1

人は、私はこのバグを解決しました。

私たちはビヘイビアを呼びたいと思っていて、我々のコントローラーにはbeforeAction metohdがあります。 beforeActionのようになります。親クラスのメソッドbeforeActionにある振る舞いを呼び出すメソッド。

public function beforeAction($event) 
{ 
    ... 

    return parent::beforeAction($event); 
} 
0

auth paramがbasicAuth配列のキーでなければなりません:

public function behaviors() 
{ 
    return [ 
     'basicAuth' => [ 
      'class' => \yii\filters\auth\HttpBasicAuth::className(), 
      'auth' => function ($username, $password) { 
       // ... 
      } 
     ], 
    ]; 
} 

http://www.yiiframework.com/doc-2.0/yii-filters-auth-httpbasicauth.html

+0

私は変更されましたが、変更はありません。私は問題の新しいコードをコピーして貼り付けます –

+0

あなたの最初の質問に対する正解でした...どうやって間違ったbeforeActionメソッドがあったと思いますか? – soju

関連する問題