前言:最近在处理个人项目时,后端egg配置了session,用户登陆后储存session后,前端换个请求接口,或者切换路由之后,后端session操作时,发现丢失了,找了大半天问题,硬是没结果,第二天上班蹲个厕所,就想到了方法,下班后马上回来处理,并解决。
一,遇到问题?
后端配置的session
储存用户信息
打印session
这个时候本以为能输出储存的userinfo 拿到id处理后面的操作,报错了。
二,解决方法!
百度一下
找到思路
百度了很久,才在大佬PanJiaChen的提示下,了解到要跨域session会丢失,前端要配置withCredentials, 后端也是要设置Access-Control-Allow-Credentials的。 参考链接:github.com/panjiachen/…
后端essjs配置
需要在config.default.js 下配置cors属性credentials为true,origin值最好为对应地址 ,security属性domainWhiteList要放出白名单,所有要[*] ,
前端axios配置
前端相对相对简单,在axios配置下,配置withCredentials
三,问题解决
配置好,打印一下
这样就可以通过后端携带session 处理一系列操作。