从构造函数Codeigniter 3中调用的方法返回JSON响应



我正在Codeigniter 3中构建一个自定义认证系统。

给定这个代码:

class Base_REST extends REST_Controller
{
protected $user;
public function __construct($config = 'rest')
{
parent::__construct($config);
$this->load->helper('url');
$this->load->library('Oauth');
$this->user = $this->initUser();
}
/**
* @return mixed
*/
private function initUser()
{
try {
return $this->oauth->checkBearerToken($this->head('Authorization'));
} catch (Exception $exception) {
// ???
}
}
}

当一个异常被丢弃时,我不能像这样返回JSON:

{
"message": "The token is not valid"
}

我正在尝试这个,因为我从控制器返回JSON:

catch (Exception $exception) {
$this->response((object) [ 'message' => $exception->getMessage()], $exception->getCode());
}

但是在响应体中没有显示任何内容。

有人知道如何处理和返回这些错误吗?我已经看到了echo的使用,但我不认为这是最好的方式,如果在我的代码执行过程中有任何错误,响应体包括echo和错误。

提前感谢!

代码是否在返回后直接退出,并且头内容是否设置为json ?

来自codeigniter文档的示例:

$response = array('status' => 'OK');
$this->output
->set_status_header(200)
->set_content_type('application/json', 'utf-8')
->set_output(json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))
->_display();
exit;

相关内容

  • 没有找到相关文章

最新更新