2016-05-13 7 views
2

Ich habe Pass-lokale Strategie in meiner Anwendung implementiert. Jetzt werde ich mich erinnere Funktionalität implementieren:pass.js: Erinnere mich funktioniert nicht in Express-App

app.use(passport.initialize()); 
app.use(passport.session()); 

app.post("/login", function (req, res, next) { 
    var authFunction = passport.authenticate("local", function (err, user, info) { 
     if (err) { 
      next(err); 
     } else { 
      req.logIn(user, function (err) { 
       if (err) { 
        next(err); 
       } else { 
        if (req.body.remember) { 
         req.session.cookie.originalMaxAge = 2592000000; 
        } else { 
         req.session.cookie._expires = false; 
        } 
        res.redirect("/"); 
       } 
      }); 
     } 
    }); 
    authFunction(req, res, next); 
}); 

Wie man sehen kann ich die originalMaxAge gesetzt, aber es funktioniert nicht, wenn ich den Browser schließen und wieder öffnen.
Irgendeine Idee?

Antwort

0

Von Connect Documentation:

Session # Cookie

Jede Sitzung hat ein einzigartiges Cookie Objekt, um es zu begleiten. Dadurch können Sie den Sitzungscookie pro Besucher um ändern. Zum Beispiel können wir req.session.cookie.expires auf false setzen, damit der Cookie nur für die Dauer des Benutzeragenten verbleibt.

Session # maxAge

Alternativ req.session.cookie.maxAge wird die Zeit verbleibenden in Millisekunden zurückkehren, was wir können auch einen neuen Wert neu zuweisen die .expires Eigenschaft entsprechend anzupassen. Die folgende im Wesentlichen gleichwertig sind

Nach diesem haben Sie expires und maxAge Eigenschaften festlegen:

if (req.body.remember) { 
    var oneHour = 3600000; 
    req.session.cookie.expires = new Date(Date.now() + hour); 
    req.session.cookie.maxAge = hour; 
} else { 
    req.session.cookie.expires = false; 
} 
Verwandte Themen