解决微服务中关于用户token处理到的坑

作者:JAVA-新的开始 时间:2022-05-21 08:31:03 

关于用户token处理到的坑

当采用前后台完全分离,以微服务架构的搭建时。在搭建微服务过程中,由于每个服务都是独立的应用,这样就会造成一个统一用户的问题。

当用户从这个用户管理系统中登录后,在其他系统的如何判断用户是否已经登录的问题。

目前常用的有以下几种方案:

  • 1、session 、redis共享处理

  • 2、Header存储token机制

  • 3、用户每个接口加入token参数

其中3方案最简单,但是要求每个调用接口都需要传入token参数。我的前期采用的是这种方案。整体测试及使用结果还不错。

方案2 是要求在进行请求时将token参数加入header中,由于涉及了自定义header参数,因此如果进行跨域访问时,会过不了Html预检功能。如果要处理这种预检,需要先进行options请求的处理。因此我在前台进行options请求,先将options请求返回200这样才能保证请求的继续执行。如果采用同一个域名的情况下,可以避免这种情况。

方案3 在要求我们加入一个spring-session-data-redis的依赖。然后启动redishttpsession功能。但是我在使用过程中遇到不少问题。但是当多个项目启动这个功能时,会出现session冲突问题,造成每次请求的sessionid发生变化。

微服务服务间调用传递token

微服务间的调用通常我们使用FeignClient来实现。那么如何在调用的时候传递token来保证服务间调用的安全校验呢?

没错,我们可以配置一个 * 。该 * 的功能就是在请求发出去前在header中添加token。

代码如下


@Component
public class FeignHeaderInterceptor implements RequestInterceptor {
   @Override
   public void apply(RequestTemplate template) {
       template.header(HttpHeaders.AUTHORIZATION, "token");
   }
}

RequestInterceptor是feign提供的接口

该接口只有一个方法:


public interface RequestInterceptor {
 void apply(RequestTemplate template);
}

这样被调用的服务就可以在header中拿到token来做校验了。

来源:https://blog.csdn.net/tianlong1569/article/details/90699996

标签:微服务,用户,token
0
投稿

猜你喜欢

  • SpringMVC框架整合Junit进行单元测试(案例详解)

    2022-04-10 20:53:37
  • Java执行JS脚本工具

    2022-04-07 08:00:16
  • MyBatis在SQL语句中如何获取list的大小

    2021-08-15 12:09:55
  • Spring自动注入失败的解决方法

    2022-08-13 03:41:31
  • Maven实战之搭建Maven私服和镜像的方法(图文)

    2023-11-27 22:27:06
  • Spring实战之协调作用域不同步的Bean操作示例

    2023-01-23 02:48:10
  • Spring源码解析之编程式事务

    2023-06-20 19:17:49
  • Java8 如何正确高效的使用并行流

    2021-06-01 20:29:19
  • 解决@Cacheable在同一个类中方法调用不起作用的问题

    2022-02-19 01:46:54
  • flutter ExpansionTile 层级菜单的实现

    2023-06-15 16:04:01
  • Java实现年兽大作战游戏详解

    2023-11-08 04:28:05
  • 代码分析Android消息机制

    2023-07-26 09:44:44
  • springboot远程debug调试全过程

    2023-11-25 07:05:56
  • SpringMVC请求流程源码解析

    2021-08-07 03:35:11
  • Flutter中http请求抓包的完美解决方案

    2023-08-22 18:47:47
  • 高并发下如何避免重复数据产生技巧

    2022-04-17 07:08:57
  • Java中static关键字的作用和用法详细介绍

    2022-07-05 08:33:53
  • java多线程有序读取同一个文件

    2022-05-28 20:41:57
  • web.xml SpringBoot打包可执行Jar运行SpringMVC加载流程

    2023-11-24 07:40:52
  • Spring MVC请求参数的深入解析

    2021-11-26 22:55:25
  • asp之家 软件编程 m.aspxhome.com