请求头缺少授权 - Codeigniter rest

The*_*ind 6 php rest codeigniter jwt

我正在使用 Codeigniter 休息服务器和 firebase php-jwt 创建一个宁静的服务。创建了一个 api 来返回操作员列表。要访问此 api 客户端必须在标头中发送令牌。示例请求是 -

GET /index.php/operators/prepaid HTTP / 1.1
主机:testing.mydomain.in
授权:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjExNTIxNCIsImlhdCI6MTUxNzk4MjU1NywiZXhwIjoxNTE4MDAwNTU3fQ.PZYh3OlSsKGo_ihPPSm7RrU5BbTNaeTN1fKlNcOZ2r4
缓存控制:无缓存
邮差令牌:933f3b1d-7934-D30A-11bf-f80f3912f433

控制器代码

use \Firebase\JWT\JWT;
class Operators extends REST_Controller 
{
    private $_payload;

    public function __construct($config = 'rest')
    {
        parent::__construct($config);
        $token = $this->input->get_request_header('Authorization');
        if(!$token) {
            $output = array("Error" => "Access Denied");
            $this->response($output, REST_Controller::HTTP_UNAUTHORIZED);
        }
        try {
            $this->_payload = JWT::decode($token, $this->config->item('jwt_secret_key'),array('HS256'));
        } catch (Exception $ex) {
            $output = array("Error" => $ex->getMessage());
            $this->response($output, REST_Controller::HTTP_UNAUTHORIZED);
        }
        $this->load->model('Operators_Data');
    }       

    public function prepaid_get()
    { 
        $operators = $this->Operators_Data->getOperatorsByService(1);
        $this->response($operators);
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下结果

{
     "Error": "Access Denied"
}
Run Code Online (Sandbox Code Playgroud)

如果令牌不存在,则从控制器构造函数返回。但我在标头授权中发送令牌。

这是在我的本地主机上工作(它返回操作员列表)。但是当我从测试服务器尝试时,它总是返回“拒绝访问”。

更新:很确定服务器忽略了“授权”标头。

也试过

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Run Code Online (Sandbox Code Playgroud)

.htaccess 中的设置

很感谢任何形式的帮助。

flo*_*dee 7

添加

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Run Code Online (Sandbox Code Playgroud)

.htaccess文件的顶部解决了我的情况