0
因此,在這裏我有一個路由來調用一個API,並向它發送用戶令牌。 API然後生成一個新的令牌並將其發送迴應答。在節點中的req.user會話中設置更新的令牌
然後我想用新令牌更新req.user.token
,這樣我就可以在會話中繼續進行有效的API調用。但是,我只能在響應範圍之外的會話中執行此操作。
這是我的嘗試。我如何使req.user.token
獲取更新的令牌?
router.post('/:id', function (req, res, next) {
var returnedToken = "";
var options = {
url: configUrl + '/' + req.params.id,
method: 'POST',
headers: {
'token': req.session.passport.user.token,
'caller': 'client[route:POST user]',
'x-request-id': req.requestId,
},
json: req.body
};
request(options, function (error, response, body) {
if (error) {
req.logger.error({err: error}, 'connection to user service has failed');
res.status(500).send(error.message);
} else {
res.status(response.statusCode).send(body);
returnedToken = response.body.token;
}
return next();
})
req.user.token = returnedToken;
});
如果我設置的請求中的req.user.token
那麼它是不是可以在客戶端的其他地方。但是,如果我將req.user.token
設置在returnedToken
以上,那麼它就是未定義的,因爲它顯然超出了範圍。
任何想法如何解決這個問題?
感謝
謝謝。這有效,有時它只是需要新鮮的眼睛! – Sam