视频课程 编程

基于JWT与刷新令牌的Spring Security实战课 (英文课程中文字幕)

¥5.00 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

视频数量:18个 总时长:2小时3分 课程介绍: 基于JWT与刷新令牌的Spring Security实战课 想象一下,你刚开发完一个Web应用,前端那边跟你说,能不能加个登录功能,后端根据不同用户返回不同的数据。你心想,这不就是表单提交然后存session嘛。但产品经理跑过来加了一句:我们要做成前后端分离的,而且要支持移动端。这时候session方案就不灵了,因为移动端没有浏览器的cookie机制。于是JWT登场了。 这门课就是来解决这个问题的。课程由Junior老师主讲,全程用Spring Boot配合Spring Security,带你从零搭建一套完整的基于JWT的身份认证系统,并且还要解决JWT最大的痛点,也就是令牌过期怎么办。答案是用刷新令牌。 课程总共18个视频,时长两小时出头,分成六大模块。看起来不长,但每一节都是实打实的代码演示,没有废话。下面我一个一个说清楚到底讲了什么。 一、基础概念铺垫: 开头四个视频先把基础打牢。老师会先讲清楚JWT到底是什么,它的结构长什么样,头部、载荷、签名三部分各自起什么作用。然后区分两个经常被搞混的概念:认证和授权。认证是确认"你是谁",授权是决定"你能做什么"。这两个词搞不清楚,后面写代码一定会乱。最后会用一张图说明JWT在请求链路中的流转过程,从用户登录到服务端校验再到返回受保护资源,整个链路跑一遍。有了这个全局视角,后面写代码就不会只见树木不见森林。 二、领域模型与数据层: 有了概念基础,接下来开始动手写代码。先定义领域模型,也就是用户和角色这两个核心实体。用户和角色是多对多关系,一个用户可以拥有多个角色,一个角色也可以分配给多个用户。这个关系用JPA注解来映射,老师会把实体类的每个字段、每个注解都讲清楚。 接下来是JPA仓储层。Spring Data JPA的好处是你不用写实现类,只要定义一个接口继承JpaRepository,常用的增删改查方法全都免费送。课程里也会演示怎么写自定义的查询方法,比如根据用户名查找用户,这个在登录流程里就要用到。 三、业务逻辑实现: 仓储层之上是服务层。课程用两节课的篇幅来实现UserService和RoleService。用户注册、密码加密、角色分配这些业务逻辑都封装在这一层。密码加密用的是BCrypt算法,老师会解释为什么不能用MD5或者SHA这种简单哈希方式,因为彩虹表攻击太容易了。BCrypt会自动加盐,而且计算过程故意设计得很慢,正好能拖慢暴力破解的速度。 四、API接口设计: 服务层搞定之后,就开始暴露HTTP接口。课程用三节课的篇幅来写控制器。用户注册的接口、保存用户的接口、给用户分配角色的接口,一个一个实现。这里老师会演示RESTful风格的接口设计,GET用于查询,POST用于创建,PUT用于更新,DELETE用于删除,路径要见名知意。请求体用JSON格式,通过@RequestBody注解接收,响应统一返回ResponseEntity,状态码要语义化。 还有一个细节值得一提:课程会演示怎么在应用启动时往数据库里插入几条测试数据。用CommandLineRunner接口,在应用启动完成后自动执行一段代码,创建几个测试用户和角色,省得你每次都要手动往数据库里插数据。这个小技巧在做开发和测试的时候特别有用。 五、安全配置与过滤器: 这是整门课的重头戏,占了将近一半的篇幅。首先是Spring Security的基础配置,关闭CSRF保护,设置哪些路径需要认证、哪些路径可以匿名访问。因为这是前后端分离的项目,不需要传统的表单登录和session机制。 然后是认证过滤器,分三节课来讲。认证过滤器的作用是拦截每一个请求,从请求头里取出JWT令牌,解析令牌拿到用户名,然后从数据库加载用户详情,最后把认证对象放到Spring Security的上下文里。整个过程像流水线一样,一步步拆开讲清楚。 接下来是授权过滤器,同样是两节课。认证只是确认了身份,但具体能访问哪些资源,还得看授权。授权过滤器会根据用户的角色,判断当前请求是否被允许。有的接口只有管理员能调,普通用户调了就返回403。这部分会用@PreAuthorize注解和配置类两种方式来实现,两种方式各有适用场景,老师都会讲到。 六、刷新令牌机制: 最后一节课解决令牌过期的问题。访问令牌的生命周期通常比较短,比如15分钟或者半小时,过了这个时间令牌就失效了。但总不能让用户每15分钟就重新登录一次吧。这时候刷新令牌就派上用场了。刷新令牌的生命周期长得多,比如7天甚至30天,专门用来换取新的访问令牌。课程会演示怎么生成刷新令牌、怎么校验、怎么用刷新令牌去换新的访问令牌,整个流程串起来讲一遍。 这门课适合什么样的朋友来学呢?如果你已经会用Spring Boot写普通的CRUD接口,但对安全这块一直没搞清楚,那么这门课就是为你准备的。学完之后,你不仅能搭出一套完整的JWT认证系统,更重要的是理解了Spring Security的过滤器链机制,以后遇到任何安全问题都能从这个底层逻辑出发去分析和解决。课程附带的完整代码也可以直接拿到自己的项目里去用,作为安全模块的起点,省去从零摸索的时间。