关于Session中管理员登录无效的问题

关于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=


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,根据同源策略,127.0.0.1与localhost是不同源的,所以登录时保存的信息的session的sessionId与后一个请求的sessionId不一致,导致无法获取之前保存的信息。

祝学习愉快!


何艾莉 提问者 2022-11-24 10:49:07

老师,我请求的地址换为127.0.0.1就不行了,这是为啥?我找出问题了。

  • 提问者 何艾莉 #1

    我其他请求的地址都是localhost,就管理员请求地址换为127.0.0.1就不行了,为什么?

    2022-11-24 10:52:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师