闲聊
一般情况下,我们想用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的。