RuoYi-Cloud 鉴权

一、思路

1.两个模块

ruoyi-auth:登录认证、退出登录、jwt创建

ruoyi-common-security:鉴权

2.外部鉴权

客户端访问服务端(微服务),jwt令牌,需要登陆,token认证


3.内部鉴权

上游微服务访问下游微服务 请求头标记from-source=inner,不需要token,服务之间的调用


二、外部鉴权

1.登录(JWT创建)

登录 f12 login request url

ruoyi-gateway -> ruoyi-auth -> controller token-> postmapping login


code uuid username password

service login 校验用户名密码、查询用户信息、判断用户状态 ry-cloud sys_user、验证用户名密码、返回用户信息

token加密 tokenservice.java、保存redis

封装返回前端

previw access-token

ui login.vue -> login组件 user.js -> 将信息传给后端,将后端返回值存到前端缓存中,超时销毁

登录成功以后

2.JWT鉴权

登陆成功之后 -> 网关 -> 鉴权 -> 微服务

网关转发微服务,先找目标资源,目标资源的注解转到security,环绕增强 鉴权,通过进入到目标资源的方法中,不通过则转给网关,响应前端

外部鉴权,前置增强
AOP 面向切面编程

common-security JWT令牌

用户管理
list? URL 


ruoyi-gateway-dev.yml 无鉴权


system/user/list

modules
controller
SysUserController

/user
/list



RequiresPermissions 自定义的注解 权限验证


rupyi-common-security aspect AOP  preauthorizeaspect.java
基于切面的类来实现权限校验

AOP之前用于方法增强,方法之前之后
注解鉴权
pointcut 切入注解 环绕切入
checkMethodAnnotation

getPermiList
getLoginUser
getToken
getPermissions

核对比较权限,鉴权

token

鉴权之后,再进行微服务的请求,返回结果到前端

三、内部鉴权 

微服务与微服务之间,上游访问下游,请求头标记from-source=inner

上游服务通过 ruoyi-api 中的 ruoyi-api-system 调用 ruoyi-system 的服务  

登录过程中查询用户信息

ruoyi-auth (上游服务)查询用户信息 ruoyi-system(下游服务)
controller TokenController login

怎么调用服务
原来:在需要调用服务的模块中写一个service调用其他服务

微服务:通过ruoyi-api

ruoyi-api
ruoyi-api-system 

第三方被其它服务调用的接口
RemoteUserService FeignClient
/user/info/{username}
factory 托底


SysUserController /info/{username}
@InnerAuth

ruoyi-common-security aspect InnerAuthAspect 面向切面编程 @Around

四、参考

介绍 | RuoYi

若依-登录认证+外部鉴权

若依-内部鉴权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你喜欢喝可乐吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值