关于JWT,过滤器。拦截器的讲解

JWT(json Web   Token)

组成结构;1:头(Header):算法,类型

2.载荷(Pavload):存放个人非敏感数据和内置数据(如用户Id,过期时间)

3.签名(Singnature)Base(头,载荷,密钥),对比前俩部分的签名,防止数据篡改。

注意:密钥不能暴露,否则就不安全了。

实现流程:

1.用户登录成功后,服务器生成JWT并返回给客户端。

2.客户端将JWT存储在本地(cookie),并在后续请求中通过Authorization头部携带。

3.服务器验证JWT是否在有限期,验证通过之后根据Payload中的用户信息处理请求,否则返回401或403错误。

过滤器 (Filter)

过滤器:WEB的三大规范之一(接口)

Servlet,Filter,Listener

特点:

1.对所有请求生效(包括静态资源)

2.基于回调方法

3.依赖于Servlet容器(如Tomcat)

常见用途:日志记录,权限校验(如检查JWT)

实现步骤:

1.创建一个类,实现Filter接口,重写抽象方法

2.在类上标记@WebFilter(要拦截的路径)

3.启动类加@ServletComponentScan

执行流程:过滤前的代码->放行(目标资源)->过滤后的代码

拦截器(Interceptor)

1.拦截器:Spring的组件,要实现HandlerInterreptor接口

实现步骤:

1.创建一个类,实现HandlerInterreptor接口,重写抽象方法

2.将拦截器交给Spring管理

3.增加一个配置类,实现WebMvConfigurer接口,重写addInterceptors方法,在内部注册拦截器

执行流程:preHandle方法中的->放行(目标资源)->postHandle方法->afterCompletion方法

特点:1.仅对于Controller层请求生效。

2.依赖于框架(Spring)

3.可以获取方法上下文(参数,返回值)

常见用途:权限控制,参数校验,日志记录

实际应用建议:

1.如需处理所有请求(包括静态资源),选择过滤器。

2.若需精细控制Controller方法或访问Spring上下文,选择拦截器。

3.JWT校验通常结合俩者;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值