express-session 如何设置 connect_sid

我尝试在 使用session 的时候就新建一个user对象 用来保存connect_id

app.use(session({
    name:"Owen 's site",
    url: "localhost:5000",
    secret: "Owen 's try",
    resave: true,
    saveUninitialized: true,
    cookie: {maxAge: 60 * 1000},
    user: {}
}));

但是当我在路由中使用的时候,却不能找到这个user对象了

app.post("/sign-up",function (req, res) {
   console.log(req.session.user) // underfined     
})

问: 1.在哪儿存储connect_id ? 2.这样存储connect_id

另外我有一个疑惑,如果在connect_id 的过期时间没有结束之前,服务器重启了,那么存在服务器中的connect_id 缓存就没有了

但是再用户的cookie中还是会有这个id值, 这会导致什么样的问题?
如何解决这个问题?

阅读 3.3k
1 个回答

默认应该是存在内存里面,如果服务器重启了,session里面的数据就没有了,cookie里面的这个值,服务器端根据这个值来查询相应的session值,找不到就说明没有权限,你代码可以加下逻辑,没有session的话,就重新登录。

可以把session用redis存放,相应的包有

connect-redis
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题