如何使过期令牌异常以获取带有“令牌过期”的json响应

时间:2019-07-07 01:57:04

标签: laravel exception jwt

我有这个功能:

public function validatePayload()
{
    if ($this->isPast($this->getValue())) {
        echo 0;
        throw new TokenExpiredException('Token has expired', 401);
    }
}
  

但是我收到一条错误消息,而不是json响应。   这是我的TokenExpiredException:

public function __construct($message, $code)
{
    parent::__construct($message, $code);
}

1 个答案:

答案 0 :(得分:1)

您可以在项目的$ ip1=12.12.12.12 $ ip2=14.14.14.14 $ sed -r -e "/WEB_URL\s=/s#[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}#$ip1#" \ -e "/API_URL\s=/s#[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}#$ip2#" \ environment.ts const OTH_URL = 'http://10.10.10.10'; const WEB_URL = 'http://12.12.12.12'; const API_URL = 'http://14.14.14.14:8080'; const API_URL (can either be 'http://10.10.10.10' or 'http://10.10.10.10:8080') 中执行此操作,并覆盖app/Exceptions/Handler.php方法:

render()

在上面的代码中,我们使用public function render($request, Exception $exception) { if ($exception instanceof TokenExpiredException && $request->wantsJson()) { return response()->json([ 'message' => 'Token has expired' ], 401); } return parent::render($request, $exception); } 来使用客户端发送的Accept标头,并确定它是否需要JSON响应。