2015-08-26 7 views
5

E-posta/parola bir araya getiren bir site oturum açıyorum uygular, bir API belirteci alır ve localStorage'da saklanmak (şifreli) için kullanıcıya döndürür. (here önerildiği gibi)Yönlendirme öncesinde üstbilgi yanıtlarını ayarlama

Halen /login başarılı ilanı üzerine uygulamanın bunu gibi bir sorgu olarak ekli jetonu, endeks sayfaya yönlendirir

:

login.post('/', function(req, res) { 
    ...checking password... 

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

Bu, gayet iyi çalışıyor fakat Benoturum açtığınızda

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.logres._headers beklendiği gibi başlıklar ayarlandığını gösterir -ing ama: Ben mümkün olduğunca temiz URL'lerimi tutmayı tercih ve bunun yerine bir başlık olarak belirteç belirlersinizindeks sayfasındaki istek üzerine, şu şekilde görünmüyor:

{ 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"' } 

Herhangi bir öneri takdir edildi! Bir yönlendirme yeni bir http istek yürütebilir, çünkü

cevap

6

Ayar başlıklar istemiyorum Yani eğer bunu

req.session.accessToken = token 
+2

ihtiyacınız olduğunda Yetkilendirme jetonu depolamak ve bunu almak için express-session kullanabilirsiniz burada işe yaramaz oturumları kullanmak için, sorgu dizesi bağlamı yeni bir istekte geçirmenin tek seçeneğidir. – wkd

+1

“res.render ('index')' ile yapabilirsiniz, ancak rotada bir şey tetiklemeniz gerekip gerekmediğinden emin olun, eğer buna ihtiyacınız varsa, bir querystring sizin tek seçeneğinizdir –