用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);

});
...全文
447 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dragonfly_w 2020-03-28
  • 打赏
  • 举报
回复
你把你过期时间设置长点,太短了。
挟飞仙以遨游 2019-09-03
  • 打赏
  • 举报
回复
请问楼主问题解决了吗?我也是出现了这样的问题,一个路由下存session,另一个路由取出session就是undefined了。楼主是如何解决的啊?
山川湖海 2019-09-03
  • 打赏
  • 举报
回复
可以把session保存到localStorage中或数据库中
代码下载地址: https://pan.quark.cn/s/d56c0ac7d9f6 交流群 telegram: https://t.me/autosymlink_channel 文档 https://.com/shenxianmq/Auto_Symlink/wiki Auto_Symlink 小白牙整理 项目简介 是一个自动化工具,专门设计用于管理通过 CloudDrive2/Alist 挂载到本地的网盘。 它能够创建软链接,使得像 Emby/Jellyfin/Plex 这样的媒体服务器能够更容易地刮削和读取内容,同时减少对网盘的频繁访问。 主要特性: 实时监控: 需要CloudDrive2的会员功能文件通知,监控指定目录,自动进行必要的更新和管理。 自动化处理: 创建与更新软链接/strm文件,自动复制与更新元数据。 清理功能: 清空无效文件夹和软链接,保持本地云端一致性。 转存监控: 在常用工具,自动监控指定文件夹,转移到目标文件夹,并删除源文件 媒体库通知: 支持Emby/Plex通知,当检测到新视频的时候,会自动通知Emby/Plex扫描该视频,极大加块扫库速度 封面制作: 自动生成精美的Emby媒体库封面 Web 界面操作: 提供一个简洁易用的Web界面,用于查看日志、编辑配置和监控系统状态。 这使得用户能够更方便地管理和调整 Auto_Symlink 的运行。 更多功能可以去常用工具自行发掘. -- 安装和使用 直接运行 Python 文件: - 在首次运行后, 文件夹会生成 文件。 根据文件的注释进行配置。 - 配置完成后,使用命令 运行。 - 在 Windows 系统,需要以管理员模式运行。 Docker 运行: 使用以下命令运行 Dock...

87,990

社区成员

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

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