О первой части:
Авторизованный пользователь получает информацию о совпадении, как и ожидалось.Неавторизованный пользователь перенаправлен на корневой URL /, но я хочу, чтобы пользователь оставался на этом URL, я просто хочу вернуть HTTP-код 401 - Неавторизованный.Где я могу это изменить?
Это потому, что ваша защита по умолчанию - web
, поэтому в случае, когда пользователь пытается получить доступ к защищенному маршруту, он будет перенаправлен на домашнюю страницу (по умолчанию это также можно настроить наконечно).
Чтобы изменить защиту по умолчанию на api
, перейдите к config/auth.php
и измените его следующим образом:
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
Примечание. При выполнении запросов HTTP добавьте следующие заголовки:
/** The following tells Laravel that you want a response in json format. */
Accept: application/json
/** The following is for POST/PUT/PATCH requests, it tells the request payload format. */
Content-type: application/json
О второй части:
Запрос от авторизованного пользователя работает нормально, но неавторизованный пользователь теперь получает HTTP-код 405 - Метод не разрешен
PHP плохо обрабатывает методы PUT
/ PATCH
/ DELETE
, чтобы обойти это неудобство, выполните запрос POST, а затем добавьте скрытое поле _method
в полеформа.Значение, отправленное с полем _method, будет использоваться в качестве метода HTTP-запроса:
Тело запроса (метод с учетом регистра):
Endpoint:
/api/match/7
Headers:
Accept: application/json
Content-type: application/json
Payload or Body:
_method: PUT
...