Вопрос проверяет понимание механизмов проверки срока действия JWT токена на бэкенде без дополнительных запросов от клиента.
JWT (JSON Web Token) содержит в себе все необходимые данные для проверки, включая время истечения (exp). Бэкенд не нуждается в дополнительных запросах от фронта, так как вся информация уже закодирована в самом токене.
При каждом запросе сервер выполняет следующие шаги:
const jwt = require('jsonwebtoken');
function verifyToken(req, res, next) {
const token = req.headers['authorization']?.split(' ')[1];
if (!token) {
return res.status(401).json({ error: 'No token provided' });
}
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.user = decoded;
next();
} catch (err) {
if (err.name === 'TokenExpiredError') {
return res.status(401).json({ error: 'Token expired' });
}
return res.status(403).json({ error: 'Invalid token' });
}
}Для обновления токена без повторной аутентификации используется refresh token:
Этот подход позволяет избежать постоянных запросов на проверку токена, так как проверка происходит только при каждом запросе к защищенным ресурсам.
Использование JWT с встроенным механизмом истечения срока действия позволяет бэкенду эффективно управлять сессиями без дополнительных запросов от фронта, что снижает нагрузку на сервер и улучшает производительность приложения.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию