始终从Module.php返回状态代码200

时间:2014-01-20 05:21:28

标签: zend-framework zend-framework2 authorization http-status-codes

每当授权失败时,我想从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);


    }

Response from API Call

1 个答案:

答案 0 :(得分:0)

其他一些控制器导致问题,当我复制并粘贴一些代码时,它开始工作..

感谢@ ins0提出此建议。