问题描述
前端登录后,后端显示了登录信息并返回了token值,之后前端再调用另一个方法,后端拦截器进行请求拦截,判断当前用户是否登录,结果返回的是false,导致无法调用该方法。
猜测原因
用过swagger2和postman分别测试,二者都能正确访问方法,且拦截器中判断登录返回的是true,于是猜测是跨域问题,想到了cookie,后端判断是否登录可能是从网页当中的cookie获取相关信息进行判断,于是我分别查看三种测试方法下的cookie,swagger2和postman中的cookie都有信息,唯独网页当中的cookie是null,于是确定就是跨域cookie问题。
解决办法
前端main.js或拦截器中添加跨域携带cookie的代码,后端跨域配置中允许跨域携带cookie。
vue前端:
springboot后端跨域配置:将allowCredentials(false)改为true,将蓝线代码替换为红线代码。
至此问题解决,记录下此问题。