2016-07-06 4 views
2

Я хотел бы добавить, чтобы добавить маркер обновления к заголовку в ПО промежуточного слоя, как показано в первом ответе этого вопроса: implementing refresh-tokens with angular and express-jwtNodeJs промежуточного слоя установить заголовок

Backend - ПО промежуточного слоя:

jwt.verify(token, config.secret, function(err, decoded) { 
     if (err) { 
      res.status(401); 
      return res.json({ success: false, message: 'Authentication failed' }); 
     } else { 
      var token_exp = new Date(decoded.exp * 1000); 
      var date = new Date(); 
      var difference = (token_exp.getTime() - date.getTime())/60000; 

      if(difference < (config.expireTimeToken/2)){ 
       var expires = config.expireTimeToken + 'm'; 
       var token = jwt.refreshToken(decoded); 

       res.setHeader('Authorization', 'Bearer ' + token); 
       next(); 
      }else{ 
       req.decoded = decoded; 
       next(); 
      } 
     } 
    }); 

фронт- конец перехватчик:

module.exports = function ($injector) { 
    return { 
     request: function (config) { 

      var CoreService = $injector.get('CoreService'); 

      config.headers['x-access-token'] = CoreService.getToken(); 
      return config; 
     }, 
     response: function(response) { 
      var receivedToken = response.headers('authorization'); 
      console.log(receivedToken); 
      return response; 
     } 
    }; 
}; 

Однако всякий раз, когда я устанавливаю заголовок это не получено перехватчика на стороне клиента. Когда я отлаживаю res.header в моей консоли npm, заданный заголовок «Авторизация» находится в «_headers» вместо «заголовков».

Как я могу решить эту проблему.

ответ

0

В прямом промежуточном программном обеспечении вы можете установить заголовок, используя res.set(field, [value]) или res.header(field, [value]) (псевдоним для той же функции). setHeader - это не экспресс-метод, а native node.js, я предполагаю, что это может вызвать проблему.

+0

Я пробовал набор, заголовок и setHeader с различными комбинациями, но ни одна из них не решила мою проблему. – pmulders

Смежные вопросы