Проверка JWT эффективна для использования в промежуточном программном обеспечении? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть проект реагирования узла, мне нужно знать состояние входящего запроса, поэтому я ставлю промежуточное ПО перед любыми маршрутами.Я хочу знать, в чем сложность .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();
})

, как вы можете видеть в каждом запросе, я собираюсь проверить токен, который является синхронным методом.

Вот вопрос, является ли этот подход хорошим и эффективным?или, может быть, я должен поместить этот код по определенному пути, а не промежуточное программное обеспечение?или что-то еще?

спасибо

1 Ответ

0 голосов
/ 26 октября 2018

Ну, это цель промежуточного программного обеспечения, которое можно использовать повторно.Не забудьте включить его в любые маршруты, для которых вы хотите иметь проверенный токен.

Хотя вы можете поместить свой метод проверки в app.use, чтобы он мог проверять все маршруты.Вы все еще хотите, чтобы маршруты логина / сброса пароля были объявлены до вашего маршрута авторизации.В противном случае пользователю будет сложно войти или сбросить забытый пароль:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...