Паспорт JWT пользовательский обратный вызов и сеанс false - PullRequest
0 голосов
/ 28 апреля 2020

Установка сеанса аутентификации паспорта на false не работает при использовании пользовательских обратных вызовов для функции Passport.authenticate. Для контекста я использую express, graphql и паспорт для аутентификации пользователя. Поскольку я использую jwts, я не вижу необходимости использовать сессию, поэтому я установил для него значение false. Тем не менее, паспорт все еще обновляет таблицу сеансов проверенного пользователя.

  passport.authenticate(
  'jwt',
  { session: false },
  async (err, user, info) => {
    if (user) {
      req.user = user;
      // if successful token is valid
      // make sure that the token lives inside the token database and is valid.
      const tokenValid = await db
        .select('id', 'user_id')
        .table('tokens')
        .where({
          id: user.jti,
          user_id: user.id,
        });
      if (tokenValid.length !== 1) {
        console.log('Token not found in DB');
        return res.status(401).send({
          message: 'jwt not found',
        });
      }
    } else if (
      info.name === 'TokenExpiredError' ||
      info.name === 'JsonWebTokenError'
    ) {
      console.log('Token Error');
      return res.status(401).send({
        message: info.message,
      });
    } else if (err) {
      return res.status(400).send({
        message: 'passport error',
      });
    }
    next();
  },
)(req, res, next);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...