Ich implementiere eine Website-Login, die ein E-Mail/Passwort-Combo übernimmt, ruft ein API-Token und gibt es an den Benutzer zum Speichern (verschlüsselt) in localStorage.Setzen Sie Express Response Header vor Redirect
Derzeit auf erfolgreiche Buchung zu /login
, die App die Benutzer auf die Indexseite umleitet, mit dem Token als Abfrage angebracht, wie so (wie here vorgeschlagen):
login.post('/', function(req, res) {
...checking password...
Auth.getToken(user, function(err, token) {
res.redirect('/?token=' + token);
});
});
Dies funktioniert gut, aber ich würde meine URLs lieber so sauber wie möglich zu halten und den Token als Header gesetzt statt:
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
zeigt, dass die Header gesetzt sind, wie erwartet, aber wenn ichlogauf die Anfrage auf der Indexseite, wird es nicht angezeigt:
{ 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"' }
Alle Vorschläge geschätzt!
Also, wenn ich nicht will Um Sitzungen zu verwenden, ist die Abfragezeichenfolge meine einzige Option zum Übergeben von Kontext an eine neue Anforderung? – wkd
Sie können mit 'res.render ('index')' aber nicht sicher, ob Sie etwas in der Route auslösen müssen, wenn Sie ja benötigen, ist eine Querystring Ihre einzige Option –