解决微服务中关于用户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
投稿

猜你喜欢

  • Android编程设计模式之抽象工厂模式详解

    2023-07-15 09:35:38
  • Android 图片处理避免出现oom的方法详解

    2023-09-07 07:26:12
  • 详解Java中Duration类的使用方法

    2021-07-30 20:09:28
  • Android自定义表格控件满足人们对视觉的需求

    2023-10-13 13:35:28
  • Java编程实现高斯模糊和图像的空间卷积详解

    2022-06-18 10:44:34
  • Java毕业设计实战之生活旅行分享平台的实现

    2022-02-01 02:42:18
  • springboot2中session超时,退到登录页面方式

    2022-12-23 03:30:14
  • springmvc接收json串,转换为实体类List方法

    2023-07-28 12:40:00
  • 基于C#实现语音识别功能详解

    2023-07-12 18:55:24
  • Android无限循环RecyclerView的完美实现方案

    2022-09-10 01:44:51
  • springboot如何使用AOP做访问请求日志

    2023-11-11 10:12:19
  • Hibernate5新特性介绍

    2023-01-02 16:28:09
  • java文件处理工具类详解

    2022-12-19 22:49:59
  • C# 泛型字典 Dictionary的使用详解

    2022-01-19 23:48:17
  • Spring MVC 处理一个请求的流程

    2021-12-19 18:39:39
  • Android实现计时与倒计时的常用方法小结

    2023-10-28 07:18:02
  • GSON实现Java对象的JSON序列化与反序列化的实例教程

    2023-11-23 12:39:02
  • Android Java调用自己C++类库的实例讲解

    2023-06-16 19:09:17
  • Java框架之Maven SSM集合

    2022-04-05 16:22:54
  • SpringBoot+JPA 分页查询指定列并返回指定实体方式

    2021-08-26 11:54:57
  • asp之家 软件编程 m.aspxhome.com