2016-05-11 16 views
1

Ich habe eine Login-Route, die überprüft, ob ein Benutzer ein Token generiert und zur Startseite weiterleitet. Ich habe etwas Middleware eingerichtet, aber wenn ich versuche, auf das Token in der Middleware zuzugreifen, werde ich undefiniert. Das Token wird eingerichtet und befindet sich im Header, wenn ich nicht weiterleite, aber wenn ich weiterleite, scheine ich das Token aus den Headern zu verlieren. Dies ist das erste Mal, dass ich mit Token jede Hilfe gewürdigt habe. Hier ist eine reduzierte Version von dem, was ich arbeite mit:Zugriff auf ein Token von einer Weiterleitung im Knoten

router.post('/login', function(req, res) { 
    var token = admin.generateToken('authentication'); 
    if(token) { 
     //doing this I get the token in the header in postman 
     //res.header('Auth', token).send('token in header'); 

     //lose the token doing this 
     res.header('Auth', token).redirect('/'); 
    } else { 
     res.send('IS ADMIN NO TOKEN GENERATED'); 
    } 
}); 

router.get('/', middleware.requireAuthentication, function(req, res, next) { 
    //Can't reach here because of undefined token 
}); 

middlware.js

module.exports = function(db) { 

    return { 
     requireAuthentication: function (req, res, next) { 
      var token = req.get('Auth'); 

      console.log('TOKEN: ' + token); //undefined 
    } 
} 
}; 

Antwort

1

Es scheint, ich brauchte Sitzungen, um den Token-Wert zu erhalten. Gefunden das bereits beantwortet here

+0

Wie konnten Sie den Token Wert bestehen? Ich stehe vor dem gleichen Problem. Mein Webclient sendet ein OAuth2-Token mithilfe einer Umleitung an den Webserver. Ich habe Header versucht, aber der 'res.redirect()' Befehl setzt die Header zurück. Ich habe auch versucht, das Token in 'req.session.accesstoken' zu speichern, aber auf der Serverseite wird dieser Wert nicht beibehalten. – Umair47

1

nicht sicher, ob ich helfen, aber ich hatte etwas Ähnliches. Es stellte sich heraus, dass ich beim Erstellen meiner Routen die anderen Middlewares als Objekt weitergeben musste.

So etwas wie:

erfordern (‘./ Routen/routes.js') (Express, App, Reisepass, Mungo, Anfrage, sitename);

+0

hmm ich weiß nicht, ob das wird es tun, ich werde es versuchen, aber – nasoj1100

Verwandte Themen