用户认证篇

文章目录

  • 1. 如何生成用户认证token令牌
    • 1.1 相关表
    • 1.2 生成令牌逻辑
    • 1.3 最终结果
  • 2. 如何认证用户token令牌
    • 2.1 前端组件
    • 2.2 TokenAuthenticationFilter
    • 2.3 获得登陆用户
  • 3. 如何刷新用户认证 Token 令牌
    • 3.1 前端组件
    • 3.2 刷新令牌接口
  • 4. 如何模拟用户认证token令牌
  • 5. 如何实现URL需要登陆
    • 5.1 @PermitAll
    • 5.2 @PreAuthenticated
    • 5.3 每个项目自定义URL规则
    • 5.4 兜底

1. 如何生成用户认证token令牌

用户认证篇_第1张图片

1.1 相关表

分为访问令牌access_token和刷新令牌refresh_token, 分别保存在system_oauth2_access_tokensystem_oauth2_refresh_token
访问令牌设置的过期时间一般比较短,通常为30min,刷新令牌可以设置很长时间,比如30天。访问令牌快过期,可以用刷新令牌获得一个新的访问令牌。

1.2 生成令牌逻辑

先生成刷新令牌,再生成访问令牌。

  • 入口
    用户认证篇_第2张图片
    用户认证篇_第3张图片
    用户认证篇_第4张图片
    用户认证篇_第5张图片
  • 生成刷新令牌
    用户认证篇_第6张图片
  • 生成访问令牌
    用户认证篇_第7张图片

1.3 最终结果

用户认证篇_第8张图片

2. 如何认证用户token令牌

用户认证篇_第9张图片

2.1 前端组件

在前端yudao-ui-admin-vue3里面,看service.ts,拦截请求,在请求header添加访问token。
用户认证篇_第10张图片

2.2 TokenAuthenticationFilter

用户认证篇_第11张图片

2.3 获得登陆用户

SecurityFrameworkUtils的getLoginUser方法,2.2步骤当中已经设置在SecurityContext。

3. 如何刷新用户认证 Token 令牌

用户认证篇_第12张图片

3.1 前端组件

在前端yudao-ui-admin-vue3里面,看service.ts,拦截响应。如果返回错误401,则刷新令牌。
用户认证篇_第13张图片

3.2 刷新令牌接口

/system/auth/refresh-token
用户认证篇_第14张图片
用户认证篇_第15张图片

4. 如何模拟用户认证token令牌

用户认证篇_第16张图片

http://127.0.0.1:48080/doc.html#/home
用户认证篇_第17张图片
用户认证篇_第18张图片
用户认证篇_第19张图片

5. 如何实现URL需要登陆

用户认证篇_第20张图片
主要看YudaoWebSecurityConfigurerAdapter#filterChain。

5.1 @PermitAll

这个注解上JavaEE的标准。有该注解的URL免登陆。

  • 如何获得有该注解的URL。
    用户认证篇_第21张图片
    用户认证篇_第22张图片
  • 免登陆
    用户认证篇_第23张图片

5.2 @PreAuthenticated

APP应用大部分不需要认证,比如在京东访问商品页面等,但有些场合上一定要登陆的,比如重置密码。
通过aop实现。
用户认证篇_第24张图片

5.3 每个项目自定义URL规则

在这里插入图片描述
比如这个:

用户认证篇_第25张图片

5.4 兜底

必须认证。
在这里插入图片描述

你可能感兴趣的:(#,spring)