我同学用鱼皮的后端内容做一个简单的课设,前端是他自己写的,后端基本没动,后端使用 JDK18
登录时进行账号密码的验证之后会记录用户的登录态,其代码是下面这行
request.getSession().setAttribute(UserConstant.USER_LOGIN_STATE, user); 调用对应的方法是
Object userObj = request.getSession().getAttribute(UserConstant.USER_LOGIN_STATE); User currentUser = (User) userObj; //如果未登录,抛出异常 if (currentUser == null || currentUser.getId() == null) { throw new GlobalException(new Result<>().error(BusinessFailCode.IS_NOT_LOGIN)); } 按说是一切正常的,但是问题是前端往后端执行增删改的方法时,就一定会查找不到对应的用户,后端在 Swagger 中测试是一切正常的,但是前端就不行
查看了内容之后发现后端在登录时有返回对应的登录用 Session 数据,但是前端总是得不到结果,在 Cookie 中找不到相关数据
我猜测这可能和跨域问题有关,但是我看了后端,已经设置过 CORS 了,配置如下
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { // 覆盖所有请求 registry.addMapping("/**") // 允许发送 Cookie .allowCredentials(true) // 放行哪些域名(必须用 patterns ,否则 * 会和 allowCredentials 冲突) .allowedOriginPatterns("*") .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .exposedHeaders("*"); } } 现在我就是,搞不懂这个问题如何解决,我真的没办法了所以来问问,希望大佬救一下
