У меня есть проект реагирования узла, мне нужно знать состояние входящего запроса, поэтому я ставлю промежуточное ПО перед любыми маршрутами.Я хочу знать, в чем сложность .verify
, потому что на стороне сервера у меня есть промежуточное ПО, которое будет попадать при каждом запросе на сервер.это промежуточное ПО:
const jsonwebtoken = require('jsonwebtoken');
module.exports = ('/', (req,res,next)=>{
if(req.cookies){
if(req.cookies.token){
let decoded = '' ;
try{
decoded = jsonwebtoken.verify(req.cookies.token, 'this is the secret');
req.user = decoded ;
req.isTokenValid = true ;
}catch(err){
console.log('we got error, verifying the jwt:::', err);
req.hasToken = true ;
req.isTokenValid = false ;
}
}
else{
req.hasToken = false ;
req.isTokenValid = false ;
}
}
else{
console.log('else for nothing in cookies');
req.hasToken = false;
req.hasValidToken = false ;
}
next();
})
, как вы можете видеть в каждом запросе, я собираюсь проверить токен, который является синхронным методом.
Вот вопрос, является ли этот подход хорошим и эффективным?или, может быть, я должен поместить этот код по определенному пути, а не промежуточное программное обеспечение?или что-то еще?
спасибо