从这张图我们可以看出来gateway的核心就是一个一个的过滤器,所以token拦截自然也是在过滤器中完成的啦。这里再上一个图
token校验的实现
/\*\*
\* 使用网关进行token校验拦截
\* 注意这里需要创建这个对象所以需要依赖注入创建
\* \*/
@Component
public class TokenCheckFilter implements GlobalFilter, Ordered {
/\*\*
\* 制定好放行的路径
\* \*/
public static final List<String> ALLOW_URL = Arrays.asList("/login-service/doLogin","/doLogin");
@Autowired
private RedisTemplate redisTemplate;
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
/\*\*
\* 一般和前端约定好 一般把token放在请求头里面 一般key为Authorization (授权的意思) value 为bearer token
\* 拿到请求url判断是否为登录url是就放行,不是继续操作
\* 拿到请求头
\* 拿到token
\* 校验
\* 放行/拦截
\* \*/
ServerHttpRequest request = exchange.getRequest();
String path &#