繁体   English   中英

我只想在codeigniter的标头中缺少令牌字段时返回JSON错误响应

[英]I just want to return JSON error response when ever the token field is missing in headers in codeigniter

只是只要想在缺少令牌的情况下调用我的Api时,它应该返回一个json响应,提示“令牌是必需的”。

$headers = apache_request_headers();
$token = $headers['User-Token'];
if(isset($token)){
  $user_details = $this->user_basic_model->get_user_by_token($token);
  if (!empty($user_details))
  {
   $data = $this->fare_model->get_all_fare();

   if (empty($data)) {
       $arr = array('msg' => 'Error!', 'status_code' => 404);
       echo json_encode($arr);
    } 
   else {
       $success_array = array('msg' => 'Success!', 'status_code' => 200);
       echo json_encode(array_merge($data, $success_array));
      }
  }
  else
  {
   $arr = array('success' => 'false', 'msg' => 'Unauthorize Request', 
   'status_code' => 401);
   echo json_encode($arr);
  }
 }
 else
  {
   $arr = array('success' => 'false', 'msg' => 'Token is required', 
   'status_code' => 401);
   echo json_encode($arr);
  }

在这种情况下,当我没有使用邮递员在标头中发送User-Token字段时,我会正确地获得响应,但由于该响应,我收到了未定义索引“ User-token”的错误,我不希望显示此错误

只需稍微修改一下代码即可。

if (isset($headers['User-Token'])) {
    $token = $headers['User-Token'];
    if (empty($token)) {
        //your code
    } else {
        $arr = array('success' => 'false', 'msg' => 'Token is required',
            'status_code' => 401);
        echo json_encode($arr);
        exit();
    }
} else {
    $arr = array('success' => 'false', 'msg' => 'Token is required',
        'status_code' => 401);
    echo json_encode($arr);
    exit();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM