node.js - 防止 express-session 从特定路由发送 cookie
问题描述
下面是我正在测试快速会话的节点服务器:
//all imports here
app.use(session({
secret: 'secret',
name: 'session',
saveUninitialized: true,
secure: false,
resave: false,
cookie:{
httpOnly: true,
maxAge: 10*60*1000
}
}))
app.get('/',(req,res)=>{
console.log(req.session);
res.sendFile(__dirname+"/index.html");
})
app.get('/login',(req,res)=>{
req.session.loggedIn=true;
req.session.user="Gratis";
res.send("successful");
}
app.get('/homepage',(req,res)=>{
if(!req.session.loggedIn) res.redirect('/');
else{console.log(req.session);
res.send(" Hello ");}
})
app.listen(3000);
我们的服务器工作正常,从某种意义上说,在点击“/”路由时,exptress 会发送一个活动 10 分钟的 cookie“会话”。意味着服务器将能够在用户点击“/”路由后立即跟踪用户 10 分钟。现在我的问题从这里开始:假设用户在点击“/”路线 7 分钟后登录。然后req.session.username
会在会议上只呆 3 分钟,因为 7 分钟已经过去了。所以我的问题是,有什么方法可以防止 express 只有在用户点击“/login”路由时才发送“会话”cookie,以便用户被记住 10 分钟。
我可以考虑只使用发送自定义cookie,res.cookie
但这会破坏快速会话的目的,因为我们不必手动处理cookie。
谢谢你!!
解决方案
推荐阅读
- android - 如何制作可以在 KitKat 中运行的颤振相机应用程序?
- laravel-5 - 共享主机中的 Laravel 子域
- c++ - 可以访问非线程安全容器内的指针指向的值(线程安全映射中的条目)吗?
- java - 将多租户架构中每个租户的异常记录在单独的文件中
- c# - UserControl ComboBox 未更新
- python - python pandas将文本中的数字提取到新列
- javascript - 处理“JSX 属性中的 lambda”案例
- angular - 如何在模型类中的任何随机时间点更新组件?
- php - php mysql 在同一查询中的 WHERE 子句中使用子查询结果
- android - 新文章发布时在 android 应用中显示通知