yii2 rest api基本身份验证

yii2 rest api基本身份验证,yii2,centos7,yii2-basic-app,Yii2,Centos7,Yii2 Basic App,我正在使用yii2restapi basicauth开发一个api。我已经在本地xampp服务器上成功开发了。我已将代码部署到运行centos的vps。但我得到了以下不受欢迎的回应: { "name": "Unauthorized", "message": "Your request was made with invalid credentials.", "code": 0, "status": 401, "type": "yii\\web\\UnauthorizedHttpException

我正在使用yii2restapi basicauth开发一个api。我已经在本地xampp服务器上成功开发了。我已将代码部署到运行centos的vps。但我得到了以下不受欢迎的回应:

{
"name": "Unauthorized",
"message": "Your request was made with invalid credentials.",
"code": 0,
"status": 401,
"type": "yii\\web\\UnauthorizedHttpException"
}
我已正确设置标题

响应标题:

Connection →Keep-Alive
Content-Type →application/json; charset=UTF-8
Date →Fri, 05 May 2017 08:40:49 GMT
Keep-Alive →timeout=5, max=100
Server →Apache
Transfer-Encoding →chunked
Www-Authenticate →Basic realm="api"
X-Powered-By →PHP/5.6.30


my headers: 
Authorization : Basic BVrVm3Ay0jg2XBr3TeITaClg
Content-Type  : application/x-www-form-urlencoded
当我转储标题时,我看不到授权标题:

object(yii\web\HeaderCollection)#81 (1) {
  ["_headers":"yii\web\HeaderCollection":private]=>
  array(10) {
    ["content-type"]=>
    array(1) {
      [0]=>
      string(33) "application/x-www-form-urlencoded"
    }
    ["accept"]=>
    array(1) {
      [0]=>
      string(3) "*/*"
    }
    ["accept-encoding"]=>
    array(1) {
      [0]=>
      string(19) "gzip, deflate, sdch"
    }
    ["accept-language"]=>
    array(1) {
      [0]=>
      string(14) "en-US,en;q=0.8"
    }
    ["cache-control"]=>
    array(1) {
      [0]=>
      string(8) "no-cache"
    }
    ["connection"]=>
    array(1) {
      [0]=>
      string(10) "keep-alive"
    }
    ["cookie"]=>
    array(1) {
      [0]=>
      string(172) "_csrf=ed46321a4d6f68c815e71201a9d47fa4594bc7dc66346fe10111269e612fa24ea%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22afHivmMVT9TeQ24W-jwdIBu5sx4nA_hY%22%3B%7D"
    }
    ["host"]=>
    array(1) {
      [0]=>
      string(14) "104.238.73.161"
    }
    ["postman-token"]=>
    array(1) {
      [0]=>
      string(36) "b2123a9e-1585-5a44-4af1-dab9f12951c6"
    }
    ["user-agent"]=>
    array(1) {
      [0]=>
      string(113) "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36"
    }
  }
}

你知道为什么远程服务器会发生这种情况吗?请帮忙

可能是CRSF验证。你可以,在你的控制器里

Public $enableCsrfValidation = false;
这将在该控制器的每个操作中禁用验证

如果您想进一步挖掘,请在此查看更多信息:
可能是CRSF验证。你可以,在你的控制器里

Public $enableCsrfValidation = false;
这将在该控制器的每个操作中禁用验证

如果您想进一步挖掘,请在此查看更多信息:

嗨,对于任何遇到这个问题的人,我都找到了解决办法

我在.htaccess文件中添加了以下行,问题得到了解决

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
我从下面的线程中找到了解决方案:

嗨,对于任何遇到这个问题的人,我都找到了解决办法

我在.htaccess文件中添加了以下行,问题得到了解决

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
我从下面的线程中找到了解决方案:

你好,Chux,但是如果是CRSF问题,那么它不应该在我的本地工作?我是对的吗?是的,你是对的,我错了。你能看看app.log文件吗?嗨,chux,我已经更新了我的问题。当我转储$request->getHeaders()时,它不会在数组中显示“authorization”元素。这似乎是apache或php在该服务器上的配置方式。你能看看这里吗?嗨,Chux,但如果这是一个CRSF问题,那么它不应该在我的本地工作?我是对的吗?是的,你是对的,我错了。你能看看app.log文件吗?嗨,chux,我已经更新了我的问题。当我转储$request->getHeaders()时,它不会在数组中显示“authorization”元素。这似乎是apache或php在该服务器上的配置方式。你能看看这里吗?