session在node中是如何存储的 ?
发布于 6 年前 作者 CrewS 2780 次浏览 来自 问答

问题:session在node中是如何存储的 ? 最近了解 session cookie的相关概念,然后使用了egg-passport实践了一下 发现对session的存储有一些疑惑 通过阅读passport的源码,看到最后是执行到ctx.req.session = xxxx; 这样就保存了session到服务器中吗? 在脑海里没有很清晰的思路,究竟session是存在哪里,怎么存的 通过编辑器的提醒 Context.req: IncomingMessage,又找到了node http模块中IncomingMessage相关内容 并没有发现与session 有什么关联 感觉ctx.req.session = xxxx;是个黑盒子,里面完成了什么内容完全不清楚? 请问有大佬说说node中 session的理解吗?或者有什么思路 google了很多 都是如何使用框架进行可持续化的session存储,但是对原理好像没有什么讲述到 尝试了 ctx.req.abc = 123 进行赋值 反序列化的时候取ctx.req.abc 是undefined的,并没有存下来,那么就是对session这个字段有特别处理?

3 回复

session cookie,可以思考下后面那个词是什么意思。

@atian25 谢谢 看到相关内容了 egg中是用了koa-session 实现,实际上还是将信息存在客户端的cookie中,每次请求的时候再将请求中携带cookie解析成ctx.session

虽然有 egg-session-redis,但一般推荐 cookie session 即可,只存一个 id,其他数据自行从 redis 读取

回到顶部