在redirect之前设置快速响应标题

我正在实现一个站点login,接收电子邮件/密码组合,检索一个API令牌,并将其返回给用户以存储(encryption)localStorage。

目前,在成功发送到/login ,应用程序会将用户redirect到索引页面,并将该标记附加为查询,如下所示(如此处所示 ):

 login.post('/', function(req, res) { ...checking password... Auth.getToken(user, function(err, token) { res.redirect('/?token=' + token); }); }); 

这工作正常,但我宁愿保持我的URL尽可能干净,并设置标记为一个头,而不是:

 login.post('/', function(req, res) { ...checking password... Auth.getToken(user, function(err, token) { res.set('x-access-token', token); console.log(res._headers); // --> {'x-powered-by': 'Express', 'x-access-token': <token>} res.redirect('/'); }); }); 

console.log -ing res._headers显示标题是按预期设置的,但是当我把请求中的req.headerslogging到索引页面时,它没有显示出来:

 { host: 'localhost:3000', connection: 'keep-alive', 'cache-control': 'max-age=0', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36', referer: 'http://localhost:3000/login', 'accept-encoding': 'gzip, deflate, sdch', 'accept-language': 'en-US,en;q=0.8', cookie: 'ifusr=crwj; _ga=GA1.1.1933420201.1409901705', 'if-none-match': '"1195161647"' } 

任何build议感激!

设置标题在这里不起作用,因为redirect会执行一个新的http请求,你可以使用express-session存储auth令牌并在需要的时候获取它

 req.session.accessToken = token