0

Я хочу вернуть код состояния 403 из модуля.php всякий раз, когда сбой авторизации. Я искал и узнал, что мне нужно подключить слушателя к этому файлу.Всегда возвращает код состояния 200 из модуля.php

Я стараюсь делать это таким образом. Но я получаю 200, даже если я устанавливаю statusCode на 500. См. Код ниже.

$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

+0

У вас есть этот код в вашем методе 'onBootstrap', и вы уверены, что модуль включен в вашем application.config.php? –

+0

да этот код в onBootstrap метод. и я думаю, что если он отключен, он тоже не даст этого сообщения. – keen

+1

- ваша версия zf2 в последней стабильной версии? приведенный выше код дает мне ожидаемые результаты в моем приложении. или, может быть, какой-то другой пользовательский компонент испортил код ответа ?! – ins0

ответ

0

Некоторый другой контроллер причинял проблему, и когда я скопировал и вставить часть кода, он начал работать ..

Спасибо @ ins0 за это предложение.

Смежные вопросы