news 2026/4/23 12:37:39

Spring Boot 用户认证全攻略:Access Token + Refresh Token 实现详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot 用户认证全攻略:Access Token + Refresh Token 实现详解

基于 Spring Boot + Spring Security + JWT,本文提供一个完整的 Access Token + Refresh Token 认证实现方案,涵盖从登录认证、刷新 Token、登出,到安全优化的全流程,适用于生产环境。


一、架构概览

项目结构

src/main/java/com/example/auth/ ├── AuthApplication.java # 主应用类 ├── config/ │ ├── SecurityConfig.java # 安全配置 │ └── WebConfig.java # Web配置 ├── controller/ │ └── AuthController.java # 认证控制器 ├── dto/ │ ├── LoginRequest.java # 登录请求DTO │ ├── TokenRefreshRequest.java # Token刷新请求DTO │ └── ApiResponse.java # 统一响应DTO ├── entity/ │ ├── User.java # 用户实体 │ └── RefreshToken.java # Refresh Token实体 ├── repository/ │ ├── UserRepository.java # 用户仓库 │ └── RefreshTokenRepository.java # Refresh Token仓库 ├── security/ │ ├── JwtTokenProvider.java # JWT Token提供者 │ ├── JwtAuthenticationFilter.java # JWT认证过滤器 │ └── UserPrincipal.java # 用户主体 ├── service/ │ ├── UserService.java # 用户服务 │ ├── RefreshTokenService.java # Refresh Token服务 │ └── AuthService.java # 认证服务 └── exception/ ├── TokenRefreshException.java # Token刷新异常 └── GlobalExceptionHandler.java # 全局异常处理

二、核心实现

1. 实体类

用户和 Refresh Token 实体:

@Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true, nullable = false) private String username; private String password; private String email; private String role = "USER"; private boolean enabled = true; // getters/setters ... }
@Entity @Table(name = "refresh_tokens") public class RefreshToken { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String token; @ManyToOne(fetch = FetchType.LAZY) private User user; @Column(nullable = false) private Lo
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 6:58:00

表格结构还原能力:HunyuanOCR输出HTML或Markdown格式

表格结构还原能力:HunyuanOCR输出HTML或Markdown格式 在企业文档处理的日常中,一个看似简单的任务——将一张扫描的财务报表转换为可分析的数据表——往往需要耗费大量人力。传统OCR工具虽然能“读出”文字,却常常把表格变成一团混乱的文本流…

作者头像 李华
网站建设 2026/4/18 10:45:56

私有化部署价值凸显:HunyuanOCR满足企业数据不出域需求

私有化部署价值凸显:HunyuanOCR满足企业数据不出域需求 在金融、政务和医疗等行业,每天都有成千上万的身份证、合同、病历等敏感文档需要数字化处理。传统OCR服务虽然识别率高,但往往依赖云端API——这意味着上传图像的同时,也可…

作者头像 李华
网站建设 2026/4/19 22:12:51

加粗斜体标记探测:样式属性能否随文本一同输出

加粗斜体标记探测:样式属性能否随文本一同输出 在企业级文档自动化处理的日常中,一个看似简单却长期被忽视的问题正在浮出水面:当我们用OCR扫描一份合同、发票或技术手册时,那些加粗的条款标题、斜体的风险提示——这些视觉上的“…

作者头像 李华
网站建设 2026/4/20 6:58:55

MMOCR框架集成尝试:将HunyuanOCR作为检测识别模块

MMOCR框架集成尝试:将HunyuanOCR作为检测识别模块 在智能文档处理日益普及的今天,企业对OCR系统的要求早已不止于“把图片里的字读出来”。越来越多的应用场景——如银行票据解析、跨境电商商品图识读、客服截图理解等——要求模型不仅能高精度地定位和识…

作者头像 李华