Yii 2 API RESTful authentifier avec HTTP de Base (Yii 2 advanced modèle)

REST API travaille sans méthodes d'authentification. Maintenant, je voulais authentifier API REST avec l'authentification HTTP de Base pour les requêtes à l'API via l'application mobile. J'ai essayé avec yii2 guide, mais il ne fonctionne pas pour moi.

essentiellement mobile de l'utilisateur nécessité de login avec nom d'utilisateur & mot de passe, si un nom d'utilisateur et mot de passe sont corrects, les utilisateurs ont besoin d'être login et le plus de demande d'API doivent être valider avec le jeton.

quand je debug findIdentityByAccessToken() la fonction $token égal nom d'utilisateur.
Facteur d'extension utilisé pour vérifier HTTP demandes de Base.
access_token champ dans la table user est vide. dois-je l'enregistrer manuellement ?
comment retourner access_token en tant que répondre?

est-il une raison pour les trois méthodes(HttpBasicAuth, HttpBearerAuth, QueryParamAuth) à la fois, pourquoi? comment?

mon dossier de l'application de la structure ressemble à ci-dessous.

api
-config
-modules
--v1
---controllers
---models
-runtime
-tests
-web

backend
common
console
environments
frontend

api\modules\v1\Module.php

namespace api\modules\v1;
class Module extends \yii\base\Module
{
    public $controllerNamespace = 'api\modules\v1\controllers';

    public function init()
    {
        parent::init(); 
        \Yii::$app->user->enableSession = false;       
    }   
}

api\modules\v1\controllers\CountryController.php

namespace api\modules\v1\controllers;
use Yii;
use yii\rest\ActiveController;
use common\models\LoginForm;
use common\models\User;
use yii\filters\auth\CompositeAuth;
use yii\filters\auth\HttpBasicAuth;
use yii\filters\auth\HttpBearerAuth;
use yii\filters\auth\QueryParamAuth;

class CountryController extends ActiveController
{
    public $modelClass = 'api\modules\v1\models\Country';    

    public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['authenticator'] = [
            'class' => HttpBasicAuth::className(),
            //'class' => CompositeAuth::className(),
            //'authMethods' => [
            //    HttpBasicAuth::className(),
            //    HttpBearerAuth::className(),
            //    QueryParamAuth::className(),
            //],
        ];
        return $behaviors;
    }

}

common\models\User.php

namespace common\models;

use Yii;
use yii\base\NotSupportedException;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;

class User extends ActiveRecord implements IdentityInterface
{
    const STATUS_DELETED = 0;
    const STATUS_ACTIVE = 10;

    public static function tableName()
    {
        return '{{%user}}';
    }

    public function behaviors()
    {
        return [
            TimestampBehavior::className(),
        ];
    }

    public function rules()
    {
        return [
            ['status', 'default', 'value' => self::STATUS_ACTIVE],
            ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]],
        ];
    }

    public static function findIdentity($id)
    {
        return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]);
    }

    public static function findIdentityByAccessToken($token, $type = null)
    {

        return static::findOne(['access_token' => $token]);
    }


}

de l'utilisateur table

id
username
auth_key
password_hash
password_reset_token
email
status
created_at
access_token

access_token a été ajouté après la migration d'utilisateurs de table

OriginalL'auteur Chanuka Asanka | 2015-04-26