问题比较多一条一条的说,因为关系比较密切所以算是一个问题,属于一个大问题,没什么毛病。
项目描述:
1.express项目,直接命令行初始化项目结构。
2.目录结构如上图:
3.网站功能:用户注册登录,session验证用户身份。
4.verify.js写的用户验证逻辑。
问题1:每次的请求为什么都会改变sessionID的值?所以根本没法给req.session添加自己的自定义值,我看了网上说用redis来存储就可以了,然后用redis来做存储。但是又出现了问题,verify.js里面又无法获使用req.session.regenerate(),错误提示是:没有regenerate这个property。怎么用了个redis,把一个人家本来就自带方法搞没了?
问题2:我又在网上查了一下,说是因为app.js里面var session = require('express-session');
的这个session,和verify.js里面var session = require('express-session');
,因为require两次,导致实际上两个文件中的req.session不是同一个对象。这我就搞不清了,明明是操作的同一个req.session为什么会不同,试了网上别人回答的const session = require('express-session');
,还是没有解决。
这两天快被这个session搞的晕死了,前端小白求大神解答啊,提前谢谢了!
背景补充:
1.用户的登录验证完全没有问题。
2.app.js里面的session初始化已经放在了路由之前。
session验证的编写,基本参考以下的内容:
https://segmentfault.com/a/11...
http://www.cnblogs.com/chying...
http://wiki.jikexueyuan.com/p...
express-session官方文档
cookie-parser的
signedCookie
可以做签名验证,express-session托管了session的创建和存储。