当前位置:网站首页 > 云服务教程 > 正文

webflux使用教程(webflux webclient)



loginProcessingUrl auth2前后端分离登录页面_ViewUI

记录前后端分离的系统应用下应用场景————用户信息传递

照例先看看系统的一张经典架构图,这张图参考自网络:

loginProcessingUrl auth2前后端分离登录页面_用户信息_02

在 Dubbo 自定义异常,你是怎么处理的? 中已经对该架构做了简单说明,这里不再描述。

简单描述下在该架构中:

现在绝大多数的项目都是前后端分离的开发模式,采用方式进行用户鉴权:

  • 客户端(pc,移动端,平板等)首次登录,服务端签发,在中放入等返回给客户端
  • 客户端访问服务端接口,需要在头部携带,跟表单一并提交到服务端
  • 服务端在层统一解析鉴权,同时取出并继续向底层传递,传到服务层操作业务逻辑
  • 服务端在层取到后,执行相应的业务逻辑操作

问题:

为什么一定要把藏在中,服务端再解析取出?直接登录后向客户端返回不是更方便么?

跟用户强相关的信息是相当敏感的,一般不会直接明文暴露给客户端,会带来风险。

什么是单体应用? 简要描述就是层,层全部在一个进程中,更通俗的讲就是只有。

登录签发 token

看看下面的登录接口伪代码:

层接口:

层接口伪代码:

注意到上述伪代码中,签发时把放入客户标识中,签发到中返回给客户端。这里使用的是生成的

引入依赖:

相关工具类:

相关实体:

层统一鉴权,解析

客户端访问服务端接口,需要在头部携带,跟表单一并提交到服务端,服务端则在层新增拦截器统一做处理

新增拦截器如下:

整个解析过程已经在代码注释中说明,可以看到解析完后取出,将用户信息放入了中,关于的用法,本文暂不讨论.

添加配置使拦截器生效:

相关工具代码:

那么在层和都可以这样拿到:

层获取:

分布式应用与单体应用最大的区别就是从单个应用拆分成多个应用,层与层分为两个独立的应用,使用调用方式处理业务逻辑。而上述做法中我们将用户信息放入了中,是相对单应用进程而言的,假如层接口在另外一个服务进程中,那么将获取不到。

有什么办法能解决跨进程传递用户信息呢?翻看了下官方文档,有功能:

loginProcessingUrl auth2前后端分离登录页面_ViewUI_03

文档很清晰,只需要在层统一的拦截器中调用如下代码,就能将用户传到层

相应地调整层拦截器代码:

那么服务层可以这样获取用户了:

为了便于统一管理,我们可以在层拦截器中将获取到的再放入中,层拦截器可以看看这篇推文:Dubbo自定义日志拦截器

这样处理,层依然可以通过如下代码获取用户信息了:

关于:

关于:

到此这篇webflux使用教程(webflux webclient)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • awvs下载安装(awvs破解版安装教程)2025-06-24 07:09:08
  • xmouse安装教程(xmouse设置组合键)2025-06-24 07:09:08
  • awvs11使用教程(awvs13使用)2025-06-24 07:09:08
  • chrony服务器配置(chrony服务器配置 阿里云时间服务器)2025-06-24 07:09:08
  • 安装虚拟机蓝屏解决方法(虚拟机安装教程win7蓝屏)2025-06-24 07:09:08
  • cmake教程(cmake教程 多层目录)2025-06-24 07:09:08
  • u盘制作系统步骤(u盘制作系统教程)2025-06-24 07:09:08
  • 单片机程序破解软件(单片机破解视频教程)2025-06-24 07:09:08
  • u盘镜像安装系统操作步骤(u盘镜像装系统教程)2025-06-24 07:09:08
  • w25q128(w25q128jvsiq烧录教程)2025-06-24 07:09:08
  • 全屏图片