Как обрабатывать TokenMistmatchException в Axios - PullRequest
0 голосов
/ 01 июня 2019

Несоответствие токена происходит, когда страница остается так долго, пока не истечет срок действия переменной сеанса ...

Я могу обработать это исключение в handler.php за исключением исключений в обычных файлах лезвий laravel, но возникают проблемы при обработке этой ошибки с помощью пост-запроса axios в vue.js.

Я пытался использовать

try..catch (TokenMistsmatchException $ e)

но я все еще не могу получить ответ json в моем ответном обратном вызове axios.

Я пытаюсь найти решение этими способами

  1. Либо я нахожу способ обновить токен, если срок его действия истек до того, как сработало исключение

  2. Чтобы получить ответ на мой обратный вызов axios, чтобы я перезагрузил страницу из моего шаблона vue.

Ваша помощь будет высоко ценится

1 Ответ

0 голосов
/ 01 июня 2019

В вашем приложении / Exceptions / Handler.php file

Добавьте обработчик для TokenMismatchException в методе рендеринга

public function render($request, Exception $exception)
{
if ($exception instanceof \Illuminate\Session\TokenMismatchException) {
    if ($request->expectsJson()) {
        return response()->json([
            'error' => 'Token mismatch'
        ], $exception->getStatusCode());
    };
}

return parent::render($request, $exception);
}

После этого вы можете отлавливать ошибки в аксиомах типа

axios.post(pathname", { body:body })
     .catch(error => {
         handle error / Display error message
     })
     .then(({ data }) => {
         If successfully request performed
     });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...