以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前端测试访问新接口

五、总结 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ruoyi 接口权限是指 Ruoyi 框架中对接口进行权限控制的功能。在开发 Web 应用程序时,我们通常会有不同的用户角色,并且不同的角色对应不同的操作权限Ruoyi 接口权限的作用就是根据用户角色对接口进行细粒度的权限控制。 首先,在 Ruoyi 中,我们可以创建不同的角色,并为每个角色分配不同的权限。这些权限可以是访问某个接口、执行某个接口的某个操作,或者访问某个资源等。通过在角色管理中设置角色的权限,我们就可以实现对接口权限控制。 其次,Ruoyi 提供了接口注解 `@PreAuthorize` 和 `@HasPermissions` 来进行接口权限限制。通过在接口的方法上使用这些注解,我们可以根据用户角色对接口进行访问控制。如果用户的角色不具备访问该接口权限,系统将返回相应的错误信息,从而保证了接口的安全性。 另外,Ruoyi 还提供了接口级别的访问控制,并且支持继承式的权限控制。这意味着,如果某个接口需要继承父接口权限,则只需在子接口上添加权限注解,而无需再为子接口单独设置权限。这样可以简化权限管理的操作,并提高代码的复用性。 总结而言,Ruoyi 接口权限是通过角色管理和注解的方式实现的,可以根据用户角色对接口进行细粒度的访问控制。它能够保障系统的安全性,简化权限管理的操作,提高代码的复用性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值