[sa-token]StpUtil.getLoginId

闲聊

一般情况下,我们想用uid,可能需要前端将uid传过来,或者将token传来,然后我们进行识别。
用了sa-token之后,可以使用StpUtil.getLoginId()方法获取当前会话的用户id

代码展示

例如以下代码:

    public ResponseResult getMenu() {
        // 获取用户角色
        Long uid = Long.parseLong(StpUtil.getLoginId().toString());
        log.info("获得用户id:"+uid);
        UserInfo userInfo = userMapper.getUserById(uid);
        log.info("获得用户权限:"+userInfo.getRoleId());
        // 获取所有激活的状态菜单
        List<MenuDataItem> menus = systemMapper.getMenus(userInfo.getRoleId());

        return ResponseResult.success(menus);
    }

我们需要用户id来查询用户角色,因此使用StpUtil.getLoginId()直接获取到用户的id来进行操作

测试

现在有admin和root两个角色,我们可以通过加载菜单的情况看到:多用户同时登录的情况下,StpUtil.getLoginId()是能正确获取到对应用户id的。

image

posted @ 2024-11-01 12:33  萌狼蓝天  阅读(56)  评论(0编辑  收藏  举报