yii2 Rest api basic auth 抛出 401 未经授权

Cha*_*002 2 yii2 centos7 yii2-basic-app

我正在使用 yii2 REST Api basicauth 开发一个 api。我已经在本地xampp服务器上开发成功了。我已将代码部署到运行 centos 的 vps 上。但我收到以下未经授权的回复:

\n\n
{\n"name": "Unauthorized",\n"message": "Your request was made with invalid credentials.",\n"code": 0,\n"status": 401,\n"type": "yii\\\\web\\\\UnauthorizedHttpException"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经正确设置了标题。

\n\n

响应标头:

\n\n
Connection \xe2\x86\x92Keep-Alive\nContent-Type \xe2\x86\x92application/json; charset=UTF-8\nDate \xe2\x86\x92Fri, 05 May 2017 08:40:49 GMT\nKeep-Alive \xe2\x86\x92timeout=5, max=100\nServer \xe2\x86\x92Apache\nTransfer-Encoding \xe2\x86\x92chunked\nWww-Authenticate \xe2\x86\x92Basic realm="api"\nX-Powered-By \xe2\x86\x92PHP/5.6.30\n\n\nmy headers: \nAuthorization : Basic BVrVm3Ay0jg2XBr3TeITaClg\nContent-Type  : application/x-www-form-urlencoded\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我转储标头时,我看不到授权标头:

\n\n
object(yii\\web\\HeaderCollection)#81 (1) {\n  ["_headers":"yii\\web\\HeaderCollection":private]=>\n  array(10) {\n    ["content-type"]=>\n    array(1) {\n      [0]=>\n      string(33) "application/x-www-form-urlencoded"\n    }\n    ["accept"]=>\n    array(1) {\n      [0]=>\n      string(3) "*/*"\n    }\n    ["accept-encoding"]=>\n    array(1) {\n      [0]=>\n      string(19) "gzip, deflate, sdch"\n    }\n    ["accept-language"]=>\n    array(1) {\n      [0]=>\n      string(14) "en-US,en;q=0.8"\n    }\n    ["cache-control"]=>\n    array(1) {\n      [0]=>\n      string(8) "no-cache"\n    }\n    ["connection"]=>\n    array(1) {\n      [0]=>\n      string(10) "keep-alive"\n    }\n    ["cookie"]=>\n    array(1) {\n      [0]=>\n      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"\n    }\n    ["host"]=>\n    array(1) {\n      [0]=>\n      string(14) "104.238.73.161"\n    }\n    ["postman-token"]=>\n    array(1) {\n      [0]=>\n      string(36) "b2123a9e-1585-5a44-4af1-dab9f12951c6"\n    }\n    ["user-agent"]=>\n    array(1) {\n      [0]=>\n      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"\n    }\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n

Cha*_*002 5

大家好,对于遇到这个问题的人,我已经找到了解决方案。

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

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
Run Code Online (Sandbox Code Playgroud)

我从下面的线程中找到了解决方案: https ://github.com/yiisoft/yii2/issues/6631