2016-10-12 16 views
5

Hızlı j'ler üzerinde çalışıyorum ve kimlik doğrulaması gerektiren bir sayfaya yönlendirmem gerekiyor. Benim kodum:Express js içinde res.redirect yapılırken üstbilgileri nasıl iletilir

router.get('/ren', function(req, res) { 
    var username = 'nik', 
     password = 'abc123', 
     auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64'); 

    res.redirect('http://localhost:3000/api/oauth2/authorize'); 
}) 

Başlıkları bu yönlendirme komutuna nasıl ayarlayabilirim?

+1

ayarlamak istediğini başlıkları? başlıkları ayarlamış olsanız bile "/ api/oauth2/authorize" url'si için kullanılamayacaksınız –

+0

Yetkilendirme başlığını ayarlamak istiyorum, {'Yetkilendirme': auth} – user3655266

+0

Bunu yapmak imkansız görünüyor. [Bu konu] 'yu kontrol edin (http://stackoverflow.com/questions/32235438/set-express-response-headers-before-redirect). – solosodium

cevap

4

301 (Kalıcı Olarak Taşındı) veya 302 (Bulundu) ile yeniden yönlendiriyorsanız, başlıkları otomatik olarak ifade etmiyor mu?

Değilse, bu başlıkları ayarlayabilirsiniz nasıl:

res.set({ 
    'Authorization': auth 
}) 

veya

res.header('Authorization', auth) 

ve sonra Nihayet

res.redirect('http://localhost:3000/api/oauth2/authorize'); 

diyoruz, öyle bir şey çalışmalıdır:

router.get('/ren', function(req, res) { 
    var username = 'nik', 
     password = 'abc123', 
    auth = "Basic " + new Buffer(username + ":" + password).toString("base64"); 

    res.header('Authorization', auth); 

    res.redirect('http://localhost:3000/api/oauth2/authorize'); 
}); 
012 , Yönlendirme url sorgu parametresi kullanılarak,

İlk: başlıkları düzgün bir yönlendirmeden sonra ayarlanmamış gerçeği hakkında herhangi bir geçici çözüm olmadığını insanların istediler gibi

+0

Teşekkürler, çalışıyor ve 302 durum koduyla bir yanıt aldım: 'Bulundu. http: // localhost: 3000/api/oauth2/authorize 'adresine yönlendiriliyor ancak tarayıcı aynı sayfada kalıyor, lütfen daha fazla bilgiye ihtiyacım var – user3655266

+0

@ user3655266./Api/oauth2/authorize yoluna ne kaydettiniz? Ne olmasını bekliyorsun? Bir şeyler yarat ya da json verisini ya da başka bir şeyi geri ver? –

+0

/api/oauth2/authorize'de, ejs view engine kullanarak bir sayfa oluşturdum ... res.render ('dialog') – user3655266

0

, aslında çalışmak iki yolu vardır Müşteri tarafına alınabilir. here gibi geçmiş API'yi kullanarak url'den yükleyebilirsiniz. Bir başka çözüm, yönlendirme öncesinde bir tanımlama bilgisi ayarlamak ve istemciye almaktır. Şahsen anlamda herhangi bir şekilde benim url kirletmez tercih, sadece basit bir yardımcı ile yük bu çerez kaldırmak gerekir:

export const removeCookie = name => { 
    document.cookie = `${name}=; Max-Age=0` 
} 
+0

@MilanVelebit Ping için üzgünüm, ama senin için ilginç olabilir :) –

İlgili konular