Как сделать исключение для токена с истекшим сроком действия, чтобы получить ответ json с «Истек срок действия токена» - PullRequest
0 голосов
/ 07 июля 2019

У меня есть эта функция:

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 Ответ

1 голос
/ 07 июля 2019

Вы можете сделать это в 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);
    }

В приведенном выше коде мы используем $request->wantsJson(), который использует заголовок Accept, отправленный клиентом, и определяет, хочет ли он ответ JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...