栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js Express Passport Cookie到期

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js Express Passport Cookie到期

我弄清楚了,尽管我不喜欢这个答案。

tl; dr; -使用maxAge而不是过期。


问题的根源是在每个cookie上设置的到期日期(由Express自动设置)。我注意到,每个设置的cookie都具有相同的到期日期,最终该到期日期是过去的日期,因此立即到期。

原因在这里:

cookie: { expires : new Date(Date.now() + 3600000) }

服务器启动后,仅创建一次新的日期。这导致到期时间每次都相同。根据原始帖子中的代码,我无法弄清楚为什么它不起作用,但是我在网上找到的每个示例都使用完全相同的代码。我通过定义一个创建此Date的函数并检查它是否仅在服务器启动时被调用来验证这一点。

为了解决此问题,我定义了maxAge而不是“ expires”。maxAge需要花费毫秒数而不是日期,并且似乎正确设置了所有cookie的到期日期。

我很想听听是否有人可以一开始就解释为什么会这样,因为其他人似乎已经成功地使用了它。 有什么想法吗?

请参阅下面的工作代码

app.configure(function(){    app.set('port', process.env.PORT || 3000);    app.set('views', __dirname + '/views');    app.engine('html', consolidate.swig);    app.set('view engine', 'html');    swig.init({        root: '.',        allowErrors: true, // allows errors to be thrown and caught by express instead of suppressed        autoescape: false});    app.use(express.logger('dev'));    app.use(express.bodyParser());    app.use(express.methodOverride());    app.use(express.cookieParser("[mysecrethere]"));    app.use(express.session({   store: sessionStore,      cookie: { maxAge : 3600000 } //1 Hour      }));    app.use(passport.initialize());    app.use(passport.session());    app.use(flash());    app.use(expressValidator);    app.use(express.static(path.join(__dirname, 'public')));    //Dynamic helpers    app.use(require('./helpers/DynamicHelpers'));    app.use(app.router);});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号