【发布时间】:2020-12-01 04:22:22
【问题描述】:
我有一个使用 CodeIgniter 4 的项目。
我有一个before 过滤器:
public function before(RequestInterface $request){
$auth = $request->getHeader("Authorization");
if($auth == null){
$response = Services::response();
$response->setStatusCode(401);
$response->setHeader("WWW-Authenticate", "Bearer Token");
$response->setBody("{\"error\": \"unauthorized\"}");
exit;
}
}
如果没有授权,我想停止请求并将$response返回给客户端。
现在请求被停止,因为exit。
但作为答案,我得到了200 OK,没有body content。
我如何exit 请求并将$response 设置为客户端?
【问题讨论】:
-
将
$response设置为客户端是什么意思?如果你想返回一个 HTTP 401 和你刚刚设置的标题和正文,你只需要添加return $response;而不是exit; -
哦,我想如果我在
before中返回一些东西,它仍然会从与路径关联的控制器执行方法。但实际上不是。谢谢。
标签: php codeigniter codeigniter-4