Я делаю авторизацию с JWT, и это мое промежуточное ПО, чтобы проверить, был ли запрос отправлен авторизованным пользователем или нет
const jwt = require('jsonwebtoken');
const {secret} = require('../config/app').jwt;
module.exports = (req, res, next) => {
const authHeader = req.get('Token');
if(!authHeader) {
return res.status(401).end('Token not provided!')
}
const token = authHeader.replace('Bearer ', '');
try{
jwt.verify(token, secret);
if(payload.type !== 'access'){
return res.status(401).ens('Invalid token type')
}
}
catch(err){
if(err instanceof jwt.TokenTokenExpired){
return res.status(401).end('Token expired')
}
if(err instanceof jwt.JsonWebTokenError){
return res.status(401).end('Invalid token');
}
}
next();
}
Здесь токен проверяется jwt.berify, но мне интересно, что, если кто-то будет пытаться получить доступ с помощью действительного, но чужого (например, администратора) токена? Должен ли я не только проверять токен на действительность, но и проверять, является ли это токен, который ссылается на ЭТОГО пользователя, а не на кого-то еще? И если я должен, каков наилучший способ сделать это? Хранить user_id в токене и сопоставлять его с отправленным в запросе? Или иначе?