2016-05-13 68 views
2

我在我的應用程序中實施了護照本地策略。現在,我要實現我的記憶功能:passport.js:記住我沒有在快遞應用程序中工作

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); 
}); 

正如你可以看到我設置originalMaxAge,但是當我關閉並重新打開瀏覽器就不能正常工作。
有什麼想法?

回答

0

Connect Documentation

活動#餅乾

每個會話都有一個唯一的cookie對象伴隨着它。這允許您爲每個訪問者更改會話cookie。例如,我們可以將 將req.session.cookie.expires設置爲false,以使Cookie 僅在用戶代理期間保持不變。

活動#MAXAGE

或者req.session.cookie.maxAge將返回時間 其餘以毫秒爲單位,我們也可以重新分配一個新值 適當調整.expires財產。以下 基本上等同

根據這一點,你必須設置expiresmaxAge屬性:

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; 
} 
相關問題