每当授权失败时,我想从Module.php返回状态码403。我搜索并发现我需要将监听器附加到此文件。
我试图这样做。但即使我将statusCode设置为500,我也会得到200。 请参阅下面的代码。
$em = $e->getApplication()->getEventManager();
// Authorize API call
$auth = $this->authorize($e->getApplication()->getServiceManager());
if(!auth)
{
$app = $e->getApplication();
$em->attach(MvcEvent::EVENT_ROUTE, function($e) use ($app) {
$response = $e->getResponse();
$response->setStatusCode(500);
$response->setContent(json_encode(array(
'message' => 'You are not authorized for this request',
)));
return $response;
}, PHP_INT_MAX);
}
答案 0 :(得分:0)
其他一些控制器导致问题,当我复制并粘贴一些代码时,它开始工作..
感谢@ ins0提出此建议。