При успешном входе в систему я сохраняю возвращенный токен JWT в сеансе. Затем в моем поисковом маршруте я обращаюсь к api с токеном jwt из сеанса и устанавливаю в заголовке следующим образом:
router.post('/search', (req, res) => {
var getToken = req.session.APIToken;
var auth = 'Bearer '+getToken;
request.get({
headers: {
"authorization": auth
},
url: "localhost/abc/search?name=peter"
}, (error, response, body) => {
if(error) {
return console.dir(error);
}
var jsonBody = JSON.parse(body);
if(jsonBody.status === 200) {
console.log('Request successful!');
}
if(jsonBody.success === false) {
/// ??? BUT what if the JWT token is expired! How do I properly refresh or get a new valid jwt token here? ///
console.log('Token expired!');
}
});
});
НО что, если срок действия токена JWT истек! Как мне правильно обновить или получить здесь новый действующий токен jwt?
Я полагаю, с функцией обратного вызова с использованием электронной почты и пароля, сохраненных в сеансе? Но как мне это сделать или как лучше всего это сделать?
Изменить: у меня есть два приложения ... одно интерфейсное приложение ... и одно отдельное приложение API. Итак, при входе в систему ... я вхожу в систему через интерфейсное приложение, но получаю токен JWT из приложения API. Сеанс входа в систему из внешнего приложения составляет 360 секунд ... токен JWT действителен для 60-х ... поэтому, если токен JWT истек, когда пользователь выполняет поисковый запрос ... я хочу автоматически сгенерировать новый токен, который завершает запрос.