Michail_04
@Michail_04

Как обновить jwt токен без пользователя?

Нужно обновить токен после того как предыдущий устарел.

Пользуюсь jwt-auth для генерации токена в laravel.

Я так понял для обновления токена в этой библиотеке есть Middleware который возвращает новый токен в хедере http.

На сервере сделал вот такой роутер:
Route::get('/refresh',['middleware' => ['jwt.auth','jwt.refresh'],'uses'=>'AdminController@showusers']);

На клиента отпровляю ajax запрос :
get('/api/admin/showusers?token=' + Auth.state.api_token)
    .then((res) =>{
        if(res.data.users){             
              this.users = res.data.users;
        }
    })
    .catch((err) =>{
        if(err.response.status == 401){
            get('/api/refresh?token=' + Auth.state.api_token)
                    .then((res) =>{
                       console.log(res.response)
                    })
                    .catch((err) =>{
                       console.log(err.response)
                    })
             }        
        })
}
}


То есть ловлю 401 и делаю ajax чтобы обновить токен, но все время ловлю ошибку авторизации 401 (Unauthorized).
Я понимаю что он мне не дает ответ из за jwt.auth, но если не проверять авторизацию, то получается любой может сбросить токен. Вообщем не понимаю как это сделать:(
  • Вопрос задан
  • 1466 просмотров
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Вы пытаетесь сделать refresh, используя токен, который уже не валидный, логично, что вы его не получаете. Соответственно, когда токен у вас слетает вам, сначала, нужно заново авторизоваться и получить новый токен. Либо делать refresh до того как токен станет невалидным.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы