egg服务端配置session跨域不丢失及前端跨域处理

1,074 阅读1分钟

前言:最近在处理个人项目时,后端egg配置了session,用户登陆后储存session后,前端换个请求接口,或者切换路由之后,后端session操作时,发现丢失了,找了大半天问题,硬是没结果,第二天上班蹲个厕所,就想到了方法,下班后马上回来处理,并解决。

一,遇到问题?

后端配置的session

image.png

储存用户信息

image.png

打印session

image.png

这个时候本以为能输出储存的userinfo 拿到id处理后面的操作,报错了。

二,解决方法!

百度一下

image.png

找到思路

百度了很久,才在大佬PanJiaChen的提示下,了解到要跨域session会丢失,前端要配置withCredentials, 后端也是要设置Access-Control-Allow-Credentials的。 参考链接:github.com/panjiachen/…

后端essjs配置

需要在config.default.js 下配置cors属性credentials为true,origin值最好为对应地址 ,security属性domainWhiteList要放出白名单,所有要[*] ,

image.png

前端axios配置

前端相对相对简单,在axios配置下,配置withCredentials

image.png

三,问题解决

配置好,打印一下

image.png

这样就可以通过后端携带session 处理一系列操作。