邮递员对Laravel Middleware Exceptions没有任何回应

时间:2016-09-30 18:42:57

标签: api laravel http postman

我在让这个中间件在Laravel中工作时遇到了一些麻烦。我使用Tymon的JWT检查令牌是否有效,但是当我使用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);
}

当我尝试在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的问题还是我做错了什么? 提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

事实证明这是完美的。我使用Paw而不是Postman,它通过HTTP向我显示正确的错误代码和正确的消息。看起来问题出在Postman身上。

答案 1 :(得分:0)

一次,我遇到了同样的问题。这是由"Authorization"标头值结尾处的换行引起的,我是通过复制粘贴不记名令牌(偶然在其末尾包含换行符)来手动设置的