基于 OAuth2 协议的第三方授权登录组件,已集成 GitHub、Gitee、QQ、百度等平台,高度封装、使用简单、易于扩展。
Spring Boot 项目推荐使用配套的自动配置 Starter:openauth-spring-boot-starter
- 多平台支持:GitHub、Gitee、QQ、百度,开箱即用
- 易于扩展:继承
DefaultAuthRequest即可接入新平台 - State 防护:内置 CSRF 防护,支持自定义缓存实现
- Token 管理:统一的授权码换取、令牌刷新流程
- 零框架依赖:核心库不依赖 Spring,可在任何 Java 项目中使用
| 平台 | 实现类 |
|---|---|
| GitHub | GithubAuthRequest |
| Gitee | GiteeAuthRequest |
QqAuthRequest |
|
| 百度 | BaiduAuthRequest |
// 1. 创建平台配置
AuthPlatformConfig config = new AuthPlatformConfig();
config.setClientId("your-client-id");
config.setClientSecret("your-client-secret");
config.setRedirectUri("http://localhost:8080/callback");
// 2. 创建授权请求
AuthRequest authRequest = new GithubAuthRequest(config);
// 3. 获取授权 URL,引导用户跳转
String authorizeUrl = authRequest.authorizeUrl();
// 4. 回调中获取用户信息
AuthResponse<AuthToken> tokenResponse = authRequest.getAccessToken(callback);
AuthResponse<AuthUserInfo> userResponse = authRequest.getUserInfo(tokenResponse.getData());src/main/java/cn/ken/thirdauth/
├── request/ # 授权请求(DefaultAuthRequest + 各平台实现)
├── model/ # 数据模型(AuthToken, AuthUserInfo, AuthCallback 等)
├── config/ # 配置类(平台配置、URL 定义、常量)
├── cache/ # State 缓存(默认内存缓存,可扩展 Redis)
├── enums/ # 异常码枚举
├── exception/ # 异常定义
└── util/ # HTTP 客户端、URL 构建、用户信息解析工具
接入新平台只需三步:
- 实现
AuthUrls接口,定义平台的 OAuth2 端点 URL - 继承
DefaultAuthRequest,实现generateAccessTokenRequest、generateUserInfoRequest、parseUserInfo方法 - 创建实例并使用
- Java 17
- Apache HttpClient
- Fastjson