Php Yii2 Rest API基本身份验证无效凭据

Php Yii2 Rest API基本身份验证无效凭据,php,yii2,Php,Yii2,我正在使用postman测试我的API,但由于某些原因,它不再像每个请求所说的那样工作 您正在使用无效的凭据进行请求 我注意到,如果我查看调试器,则不会显示授权请求头。我已经测试过在postman中添加其他标题,这些标题确实出现了 我在common\models\user中有用户模型设置,可通过访问令牌查找: public static function findIdentityByAccessToken($token, $type = null) { return st

我正在使用postman测试我的API,但由于某些原因,它不再像每个请求所说的那样工作

您正在使用无效的凭据进行请求

我注意到,如果我查看调试器,则不会显示
授权
请求头。我已经测试过在postman中添加其他标题,这些标题确实出现了

我在
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',
            ]
        ]
    ],
“组件”=>[
“用户”=>[
'identityClass'=>'common\models\User',
'enableAutoLogin'=>false,
],
“日志”=>[
“目标”=>[
[
'class'=>'yii\log\DbTarget',
“级别”=>[“错误”,“警告”],
],
],
],
“urlManager”=>[
“enablePrettyUrl”=>true,
'enableStrictParsing'=>true,
'showScriptName'=>false,
“规则”=>[
“v1/login”=>“v1/login”,
['class'=>'yii\rest\UrlRule','controller'=>['v1/user']],
['class'=>'yii\rest\UrlRule','controller'=>['v1/userinfo']],
“v1/”=>“v1/”,
],
],
“请求”=>[
“解析器”=>[
'application/json'=>'yii\web\JsonParser',
]
]
],

您需要在api中使用基本格式传递授权标头。
Ex-Basic{token}

我必须在我的目录配置中添加
CGIPassAuth on
,因为Apache正在隐藏授权头。

在.htaccess文件中添加:

RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

我会在请求时传递它,代码中是否有我需要做的事情来传递它?