osticket Valid API key required

原创 经验总结
阅读数: 1063 2020年01月10日

IP 和 KEY 都配置了,接口调用时候老是提示 Valid API key required。

查询代码发现,IP地址从 $_SERVER['REMOTE_ADDR'] 取的,我们都在云服务器,取出来的 IP 你都不认识。

修改代码 upload\include\class.api.php 172~195行:

function requireApiKey() {
        # Validate the API key -- required to be sent via the X-API-Key
        # header

//        if(!($key=$this->getApiKey()))
//            return $this->exerr(401, __('Valid API key required'));
//        elseif (!$key->isActive() || $key->getIPAddr()!=$_SERVER['REMOTE_ADDR'])
//            return $this->exerr(401, __('API key not found/active or source IP not authorized'));

      $key=$this->getApiKey();
        return $key;
    }

function getApiKey() {

        //2020-1-10 因为云服务 IP 混乱,无法确定IP,所以不验证 IP
      if (!$this->apikey && isset($_SERVER['HTTP_X_API_KEY']))
         $this->apikey = API::lookupByKey($_SERVER['HTTP_X_API_KEY']);

//        if (!$this->apikey && isset($_SERVER['HTTP_X_API_KEY']) && isset($_SERVER['REMOTE_ADDR']))
//            $this->apikey = API::lookupByKey($_SERVER['HTTP_X_API_KEY'], $_SERVER['REMOTE_ADDR']);

        return $this->apikey;
    }


绕开 IP 验证,就可以了,key 还是生效的,安全性有保证。


其他相关文档链接备注:

接口开发文档:https://docs.osticket.com/en/latest/Developer%20Documentation/API/Tickets.html

使用教程:https://tmib.net/using-the-osticket-1-8-1-2-api/

phpriji.cn | 网站地图 | 沪ICP备17015433号-1