用nodejs做后端,页面跳转后session中的数据消失,请问怎么解决?

xianxiyu7765 2018-12-11 04:42:30
我的前端页面放在ngnix里面,端口是80

我的后台是用nodejs写的,端口是3060,

现在我在登陆页面进行登陆,请求http://www.xinlizhiyouni.com:80/test/user/login接口,然后将数据保存到nodejs的session中,然后跳转到http://www.xinlizhiyouni.com:80/advertise/add.html请求http://www.xinlizhiyouni.com:80/test/user/logout接口,但是此时session数据为undefined,请问为什么我的session数据丢失了,怎么才能正确在session中保留数据,然后跳转后不丢失


let identityKey = 'superKey';

app.use(cookieParser());
app.use(session({
name: identityKey,
secret: 'heart', // 用来对session id相关的cookie进行签名
cookie: {maxAge: 60000},
resave: false
}));

//设置跨域访问
app.all('*', function(req, res, next) {
   res.header("Access-Control-Allow-Origin", "*");
   res.header("Access-Control-Allow-Headers", "X-Requested-With");
   res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
   res.header("X-Powered-By",' 3.2.1');
   res.header("Content-Type", "application/json;charset=utf-8");
   next();
});

app.all('/', function(req, res, next){
let sess = req.session;
let loginUser = sess.loginUser;
let isLogined = !!loginUser;
});

// 登录接口
app.all('/test/user/login', function(req, res, next){
let sess = req.session;
let user = {
"name": req.body.name
};
console.log("登陆接口测试");
sess.loginUser = user.name;
res.setHeader("Set-Cookie", ["sid=1;path=/;domain=w;expires="+new Date("2030") ]);
res.json({ret_code: 0, ret_msg: '登录成功'});
});

app.all('/test/user/logout', function(req, res, next){
let sess = req.session;
let loginUser = sess.loginUser;

console.log("测试登出接口");
console.log(loginUser);

});
...全文
361 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dragonfly_w 2020-03-28
  • 打赏
  • 举报
回复
你把你过期时间设置长点,太短了。
挟飞仙以遨游 2019-09-03
  • 打赏
  • 举报
回复
请问楼主问题解决了吗?我也是出现了这样的问题,一个路由下存session,另一个路由取出session就是undefined了。楼主是如何解决的啊?
山川湖海 2019-09-03
  • 打赏
  • 举报
回复
可以把session保存到localStorage中或数据库中

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧