jeecg-boot前端获取当前登录的用户

问题:jeecg-boot平台获取当前登录者的信息

找了好几个文章都是让引用store的,引用store之后使用store的getters方法,获取userInfo,但是很遗憾的发现,getters方法用不了。

研究了一下发现在store中的states中好想确实可以看到userInfo的信息,但是是在states中的一个对象中的对象中(嵌套好几层),好想取不出来(我不会取哈哈哈)

解决方式

最后发现在store文件夹中的modules文件夹中有一个user.ts文件,里边有一个useUserStore变量被导出了,可以在文件中导入这个变量,可以直接获得这个变量的数据,使用这个数据可以拿到当前登录用户的信息。

上代码 

//获取登录用户的信息
import { useUserStore } from '@/store/modules/user'
//设置变量储存登陆人信息
const userStore = useUserStore();
const usercode = (userStore.getUserInfo.realname);
//此时这个usercode中的信息就是登录人的名字(我这里是“管理员”),如果去掉后边的realname,可以打印出登录用户的所有的信息。

打印内容如下

不加realname时打印的信息:

 

完美!祝大家写代码愉快哇! 

<think>我们正在处理一个关于Jeecg-Boot前端页面权限不足的问题。用户看到提示“权限不足,请联系管理员分配权限”,需要解决方案。根据Jeecg-Boot的权限设计,前端页面的权限控制通常与后端接口权限和前端菜单权限相关联。解决方案应从以下几个方面考虑:1.**检查用户角色和权限配置**:在后台管理系统中,确保该用户已被分配了相应的角色,并且该角色拥有访问该页面所需的权限。2.**检查菜单权限**:在菜单管理中,确认该菜单项是否已经正确配置,并且已授权给相应用户的角色。3.**检查路由配置**:Vue前端路由中,路由的meta属性中通常有权限标识,需要与后端返回的权限标识匹配。4.**检查接口权限**:有时页面权限不足可能是因为页面关联的接口权限没有分配。需要检查该页面调用的后端接口是否在角色的权限范围内。5.**清除缓存**:权限变更后,前端可能缓存了旧的权限信息,需要清除缓存或重新登录。具体步骤:**步骤1:确认用户角色权限**-使用管理员账号登录Jeecg-Boot后台。-进入“系统管理”->“用户管理”,找到相应用户,查看其分配的角色。-进入“系统管理”->“角色管理”,检查该角色是否拥有访问目标页面的权限(包括菜单权限和接口权限)。**步骤2:检查菜单配置**-在“系统管理”->“菜单管理”中,找到目标菜单项。-确保该菜单项的状态是“启用”的,并且“是否路由”配置正确(如果是页面菜单,通常需要是路由)。-在菜单的“授权标识”字段中,通常填写的是权限标识(如`system:user:list`),这个标识需要与前端路由中配置的`meta.permission`一致。-确保该菜单已经授权给对应用户的角色。**步骤3:检查前端路由权限控制**-在Vue前端代码中,路由配置通常在`src/router/routes.ts`或类似文件中。-检查目标页面的路由配置,看其`meta`属性中是否设置了`permission`字段,例如:```ts{path:'/user',name:'User',component:()=>import('@/views/system/user/index.vue'),meta:{permission:['system:user:list']//这里需要与菜单的授权标识一致}}```-确保这里的`permission`值与菜单管理中的“授权标识”一致。**步骤4:检查接口权限**-如果页面加载时需要调用后端接口,那么该接口也需要在角色的权限范围内。-在“系统管理”->“角色管理”中,编辑角色,查看“接口权限”选项卡,确保相关接口已授权。**步骤5:清除缓存**-如果以上配置都正确,但问题仍然存在,尝试清除浏览器缓存或退出重新登录-另外,在开发环境下,前端可能缓存了路由信息,可以尝试重新编译前端项目。**其他可能原因**:-前端权限控制逻辑可能有自定义修改。Jeecg-Boot前端权限控制的主要逻辑在`src/store/modules/permission.ts`和路由守卫中(通常在`src/router/index.ts`或`src/router/permission.ts`)。-检查前端路由守卫中的权限判断逻辑,是否有额外的控制条件。如果问题仍未解决,可以查看浏览器控制台是否有错误信息,或者查看网络请求中权限接口返回的数据是否正确(通常是`/sys/permission/getUserPermissionByToken`接口)。以上步骤应能解决大部分权限不足的问题。根据引用[1]和[2],我们使用的是Jeecg-BootVue3版本,因此前端代码结构可能有所不同,但权限控制原理类似。生成相关问题:1.如何配置Jeecg-Boot的菜单权限?2.Jeecg-Boot中如何自定义权限控制逻辑?3.Jeecg-Boot后端接口权限如何配置?</think>针对 Jeecg-Boot 前端页面出现“权限不足,请联系管理员分配权限”的问题,以下是系统性的解决方案: ### 一、核心解决步骤 1. **检查角色权限配置** - 登录后台管理系统 → 进入【角色管理】 - 确认用户所属角色是否勾选目标菜单权限(如:`system/user`) - **关键点**:菜单权限标识需与前端路由`meta.permission`字段一致[^1] 2. **验证菜单授权状态** - 在【菜单管理】中检查目标菜单: ```yaml 是否路由菜单: 是 是否启用: 是 授权标识: system:user # 需与前端路由配置匹配 ``` 3. **清除前端权限缓存** - 删除浏览器`localStorage`中的权限缓存: ```javascript localStorage.removeItem('ACCESS_TOKEN') localStorage.removeItem('PERMISSIONS') ``` - 重新登录触发权限接口`/sys/permission/getUserPermissionByToken`[^2] 4. **检查路由守卫逻辑** - 查看前端`src/router/permission.ts`文件: ```typescript router.beforeEach(async (to) => { const permissions = store.getters['user/permissions'] if (to.meta.permission && !hasPermission(permissions, to.meta.permission)) { return { path: '/exception/403' } // 触发权限不足提示 } }) ``` - 确认`to.meta.permission`值是否与后台授权标识一致 ### 二、特殊场景处理 1. **动态路由未加载** - 在`src/store/modules/permission.ts`中检查`generateRoutes`方法 - 确保从接口`/sys/permission/getUserPermissionByToken`获取的权限数据包含目标路由 2. **按钮级权限问题** - 页面元素使用`v-if="hasPermission('system:user:add')"`指令时: - 需在【菜单管理】中为按钮配置`授权标识`(如:`system:user:add`) 3. **多租户模式配置** ```java // 后端检查租户权限 @RequiresPermissions("system:user") @GetMapping("/list") public Result<?> queryPageList() { // 验证当前租户是否授权该模块 } ``` ### 三、调试工具使用 1. 浏览器开发者工具查看: - 网络请求中`/sys/permission/getUserPermissionByToken`返回数据 - 确认返回的`permissionList`包含目标权限标识 2. 前端控制台检查`Vuex`中`permission`模块的`routes`数据 ### 四、系统级检查 1. 确认使用的 Jeecg-Boot 版本(Vue3 前端需使用 3.6.1+ 版本[^2]) 2. 检查后端`shiro`配置: ```properties # application-shiro.yml shiro.user.unauthUrl: /sys/common/403 ``` > **重要提示**:权限变更后需**重新登录**使新配置生效。若问题持续,可在`src/utils/auth.ts`中临时禁用权限验证(仅限调试): > ```typescript > export function hasPermission(permissions: string[], permission: string) { > return true // 强制返回true跳过验证 > } > ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值