我正在尝试在我的应用程序中验证用户。 如果用户未经过身份验证,我尝试执行以下代码
$eventManager = $e->getApplication()->getEventManager();
$eventManager->attach(MvcEvent::EVENT_ROUTE, function($e) use ($app) {
$response = $e->getResponse();
$response->setStatusCode(401);
$response->setContent(json_encode(array(
'message' => 'You are not authorised for this request',
'name' => 'Status Forbidden'
)));
$app->getEventManager()->trigger(MvcEvent::EVENT_DISPATCH_ERROR, $e);
return $response;
}, PHP_INT_MAX);
为什么我无法获得上述代码中定义的http响应代码401
?
响应内容按预期返回。
答案 0 :(得分:0)
尝试在返回之前发送响应并触发事件。我认为可以在更换呼叫触发器,响应代码和内容时使用。
$response->sendResponse();