Передача заголовков аутентификации для экспресс-приложения с использованием запроса npm - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть два экспресс-приложения, которые я хочу пересылать / передавать заголовки аутентификации от первого ко второму.Это просто тест для чего-то другого, но тем не менее.

Я прочитал документацию по запросу и нашел, где в качестве опции можно включить заголовок auth с запросом, но, похоже, я не могу получить доступ к заголовку прямо при использовании паспорта jwt.

Для моих вариантов запроса это то, что у меня есть

options = {
  baseUrl : serviceURL,
  form: {'':''},
  headers: {Authorization: ''}
};

Это пример маршрута, который я создал для тестирования.Я удалил все, кроме основ.

router.get('/auth/test', (req, res) => {
  options.headers.Authorization = req.headers.authorization;
  request.get(req.path, options, (error, response, body) => {
    res.send(body);
  });
});

Вот вывод req.headers во втором приложении, которое вызывает запрос.

{ 
  authorization: 'Bearer <token>',
  host: '10.0.1.236:8081',
  'content-type': 'application/x-www-form-urlencoded',
  'content-length': '1',
  connection: 'close' 
}

Тогда эта часть имеет лишь некоторые связино это моя стратегия passport-jwt:

var opts = {};
// opts.jwtFromRequest = ExtractJWT.fromAuthHeaderAsBearerToken(); //Tried this one but it didn't work
opts.jwtFromRequest = ExtractJWT.fromAuthHeaderWithScheme('Bearer');
opts.secretOrKey = config.passport.jwtSecret;
opts.issuer = config.passport.issuer;
opts.audience = config.passport.audience;
passport.use('jwt', new JwtStrategy(opts, function(jwt_payload, done) {
  console.log('payload received: ', jwt_payload);
    User.findOneById({id: jwt_payload.sub}, function(err, user) {
      console.log('User: ', user);
      console.log('Error: ', err);
      if (user) {
        console.log(user);
        return done(null, user);
      }
      if (err) {
        return done(err, false);
      }
    });
}));

Кажется, что мой токен передается, но я не совсем уверен, почему он не вызывает мою стратегию, я думаю, что это из-за токенадаже не найден.

...