2016-10-07 1 views
0

J'ai un contrôleur fonctionnant correctement et je veux y attacher un comportement de base auth. J'ajoute la méthode behaviors() au contrôleur et var_dump($this->behaviors); avant l'action. Tout est correct. Le problème est que HttpBasicAuth ne fonctionne pas avec la méthode.Yii2 comportement dans le contrôleur ne fonctionne pas

Voici mon code:

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; 
      } 
     ], 

    ]; 
} 

Répondre

-1

les gars, j'ai résolu ce bug.

Si nous voulons appeler des comportements et nous avons beforeAction metohd dans notre contrôleur. Votre beforeAction devrait ressembler. Méthode qui appelle des comportements situés dans la méthode beforeAction de la classe parent.

public function beforeAction($event) 
{ 
    ... 

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

auth devrait être une param clé de basicAuth tableau:

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

Yeap, j'ai changé, mais toujours la même chose. Je vais copier et coller le nouveau code en question –

+0

C'était la réponse correcte à votre première question ... Comment pourrais-je deviner que vous aviez une mauvaise méthode beforeAction? ... – soju