passport.js:记住我不能在快速应用程序中工作
我在我的申请中实施了护照本地策略。 现在我要实现记住我的function:
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
,但是当我closures并再次打开浏览器时,它不起作用。
任何想法?
从连接文档 :
活动#cookies
每个会话都有一个唯一的cookie对象。 这允许您为每个访问者更改会话cookie。 例如,我们可以将req.session.cookie.expires设置为false,以使cookie仅保留在用户代理期间。
活动#MAXAGE
或者,req.session.cookie.maxAge将返回剩余的时间(以毫秒为单位),我们也可以重新分配一个新值来适当调整.expires属性。 以下基本相同
根据这个,你必须设置expires
和maxAge
属性:
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; }
- 手推车/快递/吞食无法查找视图
- 持续loginPassport.js不再有效。 isAuthenticated返回false
- Multer,node.js:内存在映像上传和处理后不会被清除
- multer,multiparty和connect-multiparty + Nodejs之间的区别
- 在Express中处理robots.txt的最明智的方法是什么?
- 使用Express的Node.js:在Jade视图中使用脚本标记导入客户端JavaScript?
- 错误:Route.post()需要callback函数,但在Route上有一个对象(匿名函数)
- 下面有什么比赛条件吗?
- Jade Minified Javascript未被parsing为文本块