Я пытаюсь аутентифицировать пользователя в моем приложении.
Если пользователь не аутентифицирован, я пытаюсь сделать следующий код
$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
как определено в коде выше?
Содержание ответа возвращается, как и ожидалось.
Попробуйте отправить ответ, прежде чем вернуть его и вызвать событие. Я думаю, что это возможно, когда триггер вызова, код ответа и содержание заменяются.
$response->sendResponse();
Других решений пока нет …