cakephp 3.8.13 обрабатывает несанкционированный запрос, ответ в формате JSON

#cakephp #error-handling #unauthorized #cakephp-3.8

#cakephp #обработка ошибок #несанкционированный #cakephp-3.8

Вопрос:

Я реализовал https://github.com/ADmad/cakephp-jwt-auth в моем приложении CakePHP. Моя проблема в том, что всякий раз, когда есть несанкционированный запрос, он отвечает HTML.

     <html>
        <head>
            <meta charset="utf-8"/>
            <title>
            CakePHP: the rapid development php framework:
            Error   </title>
            <link href="/favicon.ico" type="image/x-icon" rel="icon"/>
            <link href="/favicon.ico" type="image/x-icon" rel="shortcut icon"/>
            <link rel="stylesheet" href="/css/cake.generic.css"/>
        </head>
        <body>
            <div id="container">
                <div id="header">
                    <h1>
                        <a href="https://cakephp.org">CakePHP: the rapid development php framework</a>
                    </h1>
                </div>
                <div id="content">
                    <h2>Unauthorized</h2>
                    <p class="error">
                        <strong>Error: </strong>
                        An Internal Error Has Occurred.
                    </p>
                </div>
              </div>
          </body>
    </html>
  

Но в соответствии с этим руководством https://www.bravo-kernel.com/2015/04/how-to-add-jwt-authentication-to-a-cakephp-3-rest-api /, он ответит с помощью JSON. Пример ответа из руководства

 {
    "success": false,
    "data": {
        "message": "You are not authorized to access that location.",
        "url": "/api/cocktails.json",
        "code": 401
    }
}
  

Это мой маршрутизатор

 Router::prefix('api', function ($routes) {
    $routes->extensions(['json', 'xml']);
    Router::connect('/api/check', ['_method' => 'GET','controller' => 'EmailNotification', 'action' => 'check', 'prefix' => 'api']);
    $routes->fallbacks('DashedRoute');
});
  

Как я могу с этим справиться? Я хочу несанкционированный ответ в формате JSON. Спасибо.

Комментарии:

1. Можете ли вы также опубликовать метод check()?

2. Я использую postman. Проблем с отправкой запросов нет.

Ответ №1:

можете ли вы попробовать отправить свой http-запрос с заголовком Accept:application / json