文章目录
- 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 相关表
分为访问令牌access_token和刷新令牌refresh_token, 分别保存在system_oauth2_access_token和system_oauth2_refresh_token。
访问令牌设置的过期时间一般比较短,通常为30min,刷新令牌可以设置很长时间,比如30天。访问令牌快过期,可以用刷新令牌获得一个新的访问令牌。
1.2 生成令牌逻辑
先生成刷新令牌,再生成访问令牌。
- 入口
- 生成刷新令牌
- 生成访问令牌
1.3 最终结果
2. 如何认证用户token令牌
2.1 前端组件
在前端yudao-ui-admin-vue3里面,看service.ts,拦截请求,在请求header添加访问token。
2.2 TokenAuthenticationFilter
2.3 获得登陆用户
SecurityFrameworkUtils的getLoginUser方法,2.2步骤当中已经设置在SecurityContext。
3. 如何刷新用户认证 Token 令牌
3.1 前端组件
在前端yudao-ui-admin-vue3里面,看service.ts,拦截响应。如果返回错误401,则刷新令牌。
3.2 刷新令牌接口
/system/auth/refresh-token
4. 如何模拟用户认证token令牌
http://127.0.0.1:48080/doc.html#/home
5. 如何实现URL需要登陆
主要看YudaoWebSecurityConfigurerAdapter#filterChain。
5.1 @PermitAll
这个注解上JavaEE的标准。有该注解的URL免登陆。
- 如何获得有该注解的URL。
- 免登陆
5.2 @PreAuthenticated
APP应用大部分不需要认证,比如在京东访问商品页面等,但有些场合上一定要登陆的,比如重置密码。
通过aop实现。
5.3 每个项目自定义URL规则
比如这个:
5.4 兜底
必须认证。