2016-06-04 8 views
0

Ich bin neu in diesem ganzen Knoten Sache, und das Passwort ist ziemlich faszinierend und scheint für viele der Authentifizierungen ziemlich funktionieren, so sah es cool aus.Wie wird der Benutzer nach der Authentifizierung auf dieselbe Seite umgeleitet?

Szenario:. Ich wollte/profile sagen, nur fortfahren, wenn Benutzer angemeldet ist

ist die Route I, Router/

var express = require('express'); 
var router = express.Router(); 

der Rest in der Datei

gemacht genannt wird index.js

var passport = require('passport'); 
var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn; 


router.post('/login', passport.authenticate('login', { 
    successRedirect: '/home', 
    failureRedirect: '/', 
    failureFlash : true 
})); 


router.get('/profile', ensureLoggedIn('/'), function(req, res){ 
    res.json({ user: req.user }); 
}); 

So, basierend auf meinem Verständnis und die Bereitschaft, als ich/Profil hatte, mußte es gehen zur Login-Seite, und dann umleiten/Profil zu bekommen. Da die Anmeldeseite nach Hause zurückkehren soll, tut es das leider.

connect-sicherstellen-Login ist, was ich erwartet habe, um das Problem zu lösen, aber es hat nicht. Wie kann ich es so einrichten, wie ich es brauche?

+0

Mögliche Duplikat von [in node.js zur vorherigen Seite nach der Authentifizierung Umleiten mit passport.js] (http://stackoverflow.com/questions/13335881/ Umleiten-zur-vorherigen-Seite-nach-Authentifizierung-in-Knoten-js-using-pass-js) – gevorg

+1

@gevorg Ich stimme zu, dass diese Frage ein Duplikat ist, nur dass die angenommene Antwort (mit 38 upvotes!) isn ' t Passport-spezifisch überhaupt. Die zweite Antwort ([diese] (http://stackoverflow.com/a/36708483/893780)) ist die gute, ich hätte wahrscheinlich in einem Kommentar mit ihr verbunden, anstatt eine Antwort zu posten ... – robertklep

+0

@robertklep stimme zu, deine Antwort ist die beste Wahl für diese Frage. – gevorg

Antwort

3

sollten Sie successReturnToOrRedirect anstelle von successRedirect:

router.post('/login', passport.authenticate('login', { 
    successReturnToOrRedirect : '/home', 
    failureRedirect   : '/', 
    failureFlash    : true 
})); 
+0

Warum sollte das nicht in ihrer Dokumentation diskutiert werden? – Rockink

+0

Das ist, wo ich es gefunden habe ([hier] (https://github.com/jaredhanson/connect-ensure-login#log-in-and-return-to) speziell, obwohl ich zugeben muss, dass es nicht darauf hingewiesen wird sehr deutlich. – robertklep

+0

@robertklep Ich denke das ist, weil sie nicht richtige Formatierung auf ihrer 'README' Seite für bestimmtes Beispiel verwendet haben https://github.com/jaredhanson/connect-ensure-login/pull/22 – gevorg