vue express-session踩坑(设置session后每次请求都刷新问题(无法记录登录状态问题)

vue express-session踩坑(设置session后每次请求都刷新问题(无法记录登录状态问题))


首先先定义你的session

app.use(session({
    secret:"chh",
    cookie:{
        maxAge:60*1000*30,
        secure:false
    },
    resave:false,//及时session没有被修改,也保存session的值
    saveUninitialized:false //无论有没有session cookie ,每次请求都设置个session cookie
}))

然后在登录表单验证成功之后保存登录状态:

router.post('/login', (req, res)=>{
    let userModel = new user();
    userModel.Login(req.body,function(results){
        if(results.code==100){//保存登录状态
            req.session.login=true
            req.session.name=req.body.UserName
        }
        console.log(req.session)//在这里打印有session保存的login和name值
         res.send(results);
    })
})

控制台打印的保存的login值↓

Session {
  cookie: {
    path: '/',
    _expires: 2020-04-17T06:48:01.784Z,
    originalMaxAge: 1800000,
    httpOnly: true,
    secure: false
  },
  login: true,
  name: '8888'
}
但是在登录之后的主页面却得不到当时保存的login=true
app.use('/index', (req,res,next)=>{
    console.log(req.session)
    next()
},indexRouter);

控制端显示↓(没有login=true的值)(而是重新定义了session)

Session {
  cookie: {
    path: '/',
    _expires: 2020-04-17T06:47:47.444Z,
    originalMaxAge: 1800000,
    httpOnly: true,
    secure: false
  }
}

查找了很多资料终于找到在前端用axios发起请求还需在vue的main.js中加一个参数

axios.defaults.withCredentials=true;

这样就可以每次像后端请求都带上cookie,后端就不会被认为是不同用户导致session丢失

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值