簡體   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