Skip to content

Ken-Chy129/OpenAuth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OpenAuth

基于 OAuth2 协议的第三方授权登录组件,已集成 GitHub、Gitee、QQ、百度等平台,高度封装、使用简单、易于扩展。

Spring Boot 项目推荐使用配套的自动配置 Starter:openauth-spring-boot-starter

功能特性

  • 多平台支持:GitHub、Gitee、QQ、百度,开箱即用
  • 易于扩展:继承 DefaultAuthRequest 即可接入新平台
  • State 防护:内置 CSRF 防护,支持自定义缓存实现
  • Token 管理:统一的授权码换取、令牌刷新流程
  • 零框架依赖:核心库不依赖 Spring,可在任何 Java 项目中使用

已支持平台

平台 实现类
GitHub GithubAuthRequest
Gitee GiteeAuthRequest
QQ 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 构建、用户信息解析工具

自定义扩展

接入新平台只需三步:

  1. 实现 AuthUrls 接口,定义平台的 OAuth2 端点 URL
  2. 继承 DefaultAuthRequest,实现 generateAccessTokenRequestgenerateUserInfoRequestparseUserInfo 方法
  3. 创建实例并使用

技术栈

  • Java 17
  • Apache HttpClient
  • Fastjson

About

基于 OAuth2 的第三方授权登录组件 | 已集成 GitHub、Gitee、QQ、百度,零框架依赖,继承即可扩展新平台

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages