以RuoYi为例自定义接口并设置权限验证

目录

一、问题引入

二、接口权限后端源码分析

三、菜单权限

3.1菜单权限展示

3.2菜单权限作用

四、自定义接口并设置权限验证 

4.1后端定义新接口

4.2 配置菜单权限 

4.3编写前端代码 

​编辑 4.4前端测试访问新接口

五、总结 


一、问题引入

ruoyi 系统里面后端这么多接口,不登录能访问吗?登录了就都能访问吗? 自定义的接口,如何能保证其安全性?

接口1

接口2

在若依当中有很多接口访问的前提是登录了若依账号,但是在我们在没有登录若依时,例如接口1我们取验证码的这个过程是在登录之前完成的;而接口2为例功能是需要登录之后才能完成的 。接口2与接口1在注解上多了一个@PreAuthorize("@ss.hasPermi('system:role:list')") ,我们可以试着研究一下这个注解的功能。

二、接口权限后端源码分析

2.1 @ss.hasPermi('system:user:list')

通过注解里的函数@ss.hasPermi('system:user:list') 返回值控制

返回true,表示具有授权[Authorize ],能够继续访问

返回false,表示不具有授权,不能继续访问

2.2 @ss.hasPermi('system:user:list')

判断当前登录用户的权限是否包含'system:user:list'

包含则返回true,否则返回false。

三、菜单权限

3.1菜单权限展示

3.2菜单权限作用

前端:根据是否具有对应权限,控制组件是否给当前用户显示

后端:根据是否具有对应权限,控制接口是否给当前用户访问

用户ry 角色默认为普通角色,在这里我没有给他访问线上商城和Work菜单的权限。

当我们登陆ry这个账号就发现,菜单栏没有这个选项,ry没有权限访问线上商城和Work菜单。

这时我们再给ry添加Word菜单用户信息表查询权限,即具有权限system:user:list,但其他权限都没有system:Myusers:list,但其他权限都没有

用户ry 能够重新看到用户信息表,且能查询到所有用户数据。 但是由于没有增、删、改权限,显然前端一些按钮不显示了。此时后端接口也是没有权限访问

四、自定义接口并设置权限验证 

首先打开菜单管理里边的用户信息表里添加一个按钮

4.1后端定义新接口

涉及到权限验证,首先需要一个接口,这里简单定义了一个接口。

4.2 配置菜单权限 

点击新建按钮,建立标识权限system:Myusers:debug

4.3编写前端代码 

将点击事件补充完整

 4.4前端测试访问新接口

五、总结 

猜你喜欢

转载自blog.csdn.net/weixin_64890968/article/details/134851019
今日推荐