关于Session中管理员登录无效的问题
老师好,我redis开了,也配置了服务。
不是管理员登录后,能够正常操作。是管理员登录后,就不能更改个性签名,提示需要登录。
然后是管理员,就currentUser获得的session为空。
UserController
/** * 管理员登录接口 */ @PostMapping("/adminLogin") @ResponseBody public ApiRestResponse adminLogin(@RequestParam("userName") String userName, @RequestParam("password") String password, HttpSession session) throws ImoocMallException { if (StringUtils.isEmpty(userName)) { return ApiRestResponse.error(ImoocExceptionEnum.NEED_USER_NAME); } if (StringUtils.isEmpty(password)) { return ApiRestResponse.error(ImoocExceptionEnum.NEED_PASSWORD); } User user = userService.login(userName, password); //校验是否是管理员 if (userService.checkAdminRole(user)) { //是管理员,执行操作 //保存用户信息时,不保存密码 user.setPassword(null); session.setAttribute(Constant.IMOOC_MALL_USER, user); return ApiRestResponse.success(user); } else { return ApiRestResponse.error(ImoocExceptionEnum.NEED_ADMIN); } }
redis配置
spring.session.store-type=redis spring.redis.host=localhost spring.redis.port=6379 spring.redis.password=
12
收起
正在回答
2回答
同学你好,根据同源策略,127.0.0.1与localhost是不同源的,所以登录时保存的信息的session的sessionId与后一个请求的sessionId不一致,导致无法获取之前保存的信息。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星