Жетон черного списка с использованием куки - PullRequest
0 голосов
/ 28 августа 2018

Я создаю приложение, используя узел, экспресс и паспорт. Для аутентификации я использую JWT, который сохраняется в черном списке после выхода из системы. Когда я пытаюсь добавить код в мою стратегию JWTS, чтобы проверить базу данных на наличие токена, она не будет работать. Вот код:

Если я возвращаю токен в (1) месте, то он работает, но если я возвращаю его из (2) места (после проверки его по базе данных), то он говорит, что я не авторизован. Я проверил, чтобы они оба возвращали один и тот же токен, поэтому это так странно, что я не буду работать с обоих мест ...

Может кто-нибудь объяснить это?

const cookieExtractor = function(req) {
  let token = null;
  if (req && req.cookies)
    {
      token = req.cookies['jwt'];
    }
    return token; (1)

  models.blacklist
    .findOne({ where: { token: token }})
    .then(function(blacklistToken) {
      if (blacklistToken) {
        console.log('null');

        return null; 
      } else {

        return token; (2)
      }
    });
};

passport.use(new JwtStrategy({
  jwtFromRequest: cookieExtractor,
  secretOrKey: config.keys.secret
}, async(payload, done) => {
  try {
    models.user.findById(payload.userId)
    .then(function(user) {
        if (!user) {
          return done(null, false);
        }
        done(null, user);
     })
  } catch (error) {
    done(error, false)
  }
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...