SpringCloud 微服务用户登录设计

1. 前言

微服务下架构下,借助JWT和Spring Gateway过滤器进行统一用户认证,并通过拦截器解析用户携带Token获取当前用户信息存储到ThreadLocal方便业务模块使用
用户登录时序图

2. 服务架构

主要包含四个模块,使用Nacos作为注册和配置中心

服务 类型 端口 描述
jtool-gateway gateway 8080 网关,用作接口转发和认证
jtool-security authentication 8083 用户认证
jtool-template service 8081 业务模块1
jtool-demo service 8082 业务模块2

3. 网关过滤器

处于白名单中的接口不需要认证,直接转发(比如/login接口,网关会转发到security模块),非白名单接口需要解析request携带的token,若token合法,将解析token获取的用户名放到request中转发到指定接口即可

@Component
@Import(IgnoreUrlsConfig.class)
public class AuthenticationFilter implements GlobalFilter, Ordered {

    @Autowired
    private IgnoreUrlsConfig ignoreUrlsConfig;

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ServerHttpRequest request = exchang
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值