satoken登陆时权限信息到sa-session

StpInterfaceImpl 实现类

/**
     * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验)
     */
    @Override
    public List<String> getRoleList(Object loginId, String loginKey) {

        // 1. 获取这个账号所属角色id
        SaSession session = StpUtil.getSessionByLoginId(loginId);

        // 2. 获取这个角色id拥有的权限列表
        Integer userType= (Integer) session.get("Role-" + loginId);

        // 3. 判断
        List<String> list = new ArrayList<>();
        if(userType.equals(Constant.SCHOOL_CHARGE_PERSON)){
            list.add("SCHOOL_CHARGE_PERSON");
        }
        if(userType.equals(Constant.DEPARTMENT_CHARGE_PERSON)){
            list.add("DEPARTMENT_CHARGE_PERSON");
        }
        if(userType.equals(Constant.AUDIT_TEACHER)){
            list.add("AUDIT_TEACHER");
        }
        if(userType.equals(Constant.INSTRUCTOR_TEACHER)){
            list.add("INSTRUCTOR_TEACHER");
        }
        if(userType.equals(Constant.STUDENT)){
            list.add("STUDENT");
        }
        return list;
    }

用户登录类:

    @PostMapping("login")
    public R userLogin(@RequestBody LoginRequestVo loginUser){
        //获取用户Id
        String userNumber = loginUser.getUserNumber();
        //获取用户封装信息
        UserInfoVo userInfo = UserHandler.getUserInfo(userNumber);
        boolean equals = SaSecureUtil.md5(loginUser.getPassword()).equals(userInfo.getPassword());
        if(equals){

            //用户登录
            StpUtil.setLoginId(userInfo.getUserId(),false);
            //将权限放入sa-session里面缓存
            StpUtil.getSession().set("Role-"+userInfo.getUserId(),userInfo.getType());
            //返回token给前端
            return R.ok().data(StpUtil.getTokenName(),StpUtil.getTokenValue())
                    .message("用户 "+userInfo.getName()+" 登录成功");
        }else {
            return R.error().message("密码错误 请重新输入");
        }
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值