#api #laravel #http #postman
#API #laravel #http #postman
Вопрос:
У меня возникли некоторые проблемы с получением этого промежуточного программного обеспечения для работы в Laravel. Я использую JWT от Tymon, чтобы проверить, действителен ли токен, но когда я тестирую с Postman, я вообще не получаю ответа вместо установленной мной ошибки HTTP 4xx.
public function handle($request, Closure $next, $guard = null)
{
try {
JWTAuth::parseToken()->authenticate();
} catch (TokenExpiredException $e) { //Token Expired
return response('Token Expired', 440);
} catch (TokenInvalidException $e) { //Token Invalid
return response('Token Invalid', 401);
} catch (JWTException $e) {
echo("TEST");
return response('Token Exception', 499);
} catch (TokenBlacklistedException $e) { //Token Blacklisted
return response('Token Blacklisted', 403);
}
return $next($request);
}
Когда я пытаюсь использовать токен no в заголовке вызова Postman, он сообщает мне, что ответа от сервера нет.
Could not get any response
There was an error connecting to api.website.dev/test.
Why this might have happened:
The server couldn't send a response:
Ensure that the backend is working properly
Self-signed SSL certificates are being blocked:
Fix this by turning off 'SSL certificate verification' in Settings > General
Client certificates are required for this server:
Fix this by adding client certificates in Settings > Certificates
Request timeout:
Change request timeout in Settings > General
Кажется, что исключение срабатывает, но я могу получить реакцию от сервера только тогда, когда я помещаю что-то вроде инструкции echo, как показано в приведенном выше коде.
У меня возникли проблемы с этим и в других частях моего кода, где я не могу создать задание в очереди, а Postman говорит, что сервер не отвечает тем же Could not get any response
сообщением.
Это проблема с Laravel или я делаю что-то не так? Заранее благодарим вас за помощь!
Ответ №1:
Оказывается, это работает отлично. Я использовал Paw вместо Postman, и он показал мне правильные коды ошибок через HTTP с правильными сообщениями. Похоже, проблема была с Postman.
Комментарии:
1. Может быть полезно в следующий раз опубликовать версию Postman, которую вы используете, и каков обычный
curl
ответ — на всякий случай, если это что-то вроде этого или этого . Поскольку вы также отправляете необычный (нестандартный) код ответа HTTP для своего тестового примера, это также может вызвать проблемы со средствами тестирования, поэтому лучше всего тестировать со стандартными ответами, такими как 404.2. Скорее всего, это связано с пользовательской HTTP-библиотекой, написанной для Paw, которая может считывать полный код ошибки и сообщение о состоянии большинство других библиотек не предоставляют этого см. paw.cloud/ docs/advanced/ http-libraries
Ответ №2:
Однажды у меня была такая же проблема. Это было вызвано новой строкой в конце значения "Authorization"
заголовка, которое я установил вручную, скопировав токен-носитель (который случайно содержал новую строку в конце)