# justauth **Repository Path**: yudaocode/justauth ## Basic Information - **Project Name**: justauth - **Description**: JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得So easy! - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 42 - **Forks**: 26 - **Created**: 2023-06-26 - **Last Updated**: 2025-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

star github star

------------------------------------------------------------------------------- 帮助文档:[www.justauth.cn](https://www.justauth.cn) ## 什么是 JustAuth? JustAuth,如你所见,它仅仅是一个 **第三方授权登录** 的 **工具类库**,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得 **So easy!** JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow 等国内外数十家第三方平台。更多请参考 已集成的平台 并且额外支持如下能力: * 微信小程序登录 * Spring Boot 3.X + JDK 17 的支持 实战案例: * Spring Boot 架构: * Spring Cloud 架构: ## 有哪些特点? 1. **全** :已集成十多家第三方平台(国内外常用的基本都已包含),仍然还在持续扩展中([开发计划](https://gitee.com/xingyuv/JustAuth/issues/IUGRK))! 2. **简**:API就是奔着最简单去设计的(见后面`快速开始`),尽量让您用起来没有障碍感! ## 有哪些功能? - 集成国内外数十家第三方平台,实现快速接入。 参考文档 - 自定义 State 缓存,支持各种分布式缓存组件。 参考文档 - 自定义 OAuth 平台,更容易适配自有的 OAuth 服务。参考文档 - 自定义 Http 实现,选择权完全交给开发者,不会单独依赖某一具体实现。 参考文档 - 自定义 Scope,支持更完善的授权体系。 参考文档 - 更多...参考文档 ## 与 JustAuth ## 快速开始 ### 引入依赖 ```xml com.xingyuv justauth {latest-version} ``` > **latest-version** 可选: > - 稳定版:![](https://img.shields.io/github/v/release/justauth/JustAuth?style=flat-square) > - 快照版:![](https://img.shields.io/nexus/s/https/oss.sonatype.org/me.zhyd.oauth/JustAuth.svg?style=flat-square) > > 注意:快照版本是功能的尝鲜,并不保证稳定性。请勿在生产环境中使用。 > >
> 如何引入快照版本 > > JustAuth 的快照版本托管在 ossrh 上,所以要指定下载地址。 > > ```xml > > > ossrh-snapshot > https://oss.sonatype.org/content/repositories/snapshots > > true > > > > ``` > > 如果你想第一时间获取 JustAuth 的最新快照,可以添加下列代码,每次构建时都检查是否有最新的快照(默认每天检查)。 > > ```diff > https://oss.sonatype.org/content/repositories/snapshots > > + always > true > > ``` > >
如下**任选一种** HTTP 工具 依赖, _项目内如果已有,请忽略。另外需要特别注意,如果项目中已经引入了低版本的依赖,请先排除低版本依赖后,再引入高版本或者最新版本的依赖_ - hutool-http ```xml cn.hutool hutool-http 5.8.23 ``` - httpclient ```xml org.apache.httpcomponents httpclient 4.5.14 ``` - okhttp ```xml com.squareup.okhttp3 okhttp 4.9.1 ``` ### 调用api #### 普通方式 ```java // 创建授权request AuthRequest authRequest = new AuthGiteeRequest(AuthConfig.builder() .clientId("clientId") .clientSecret("clientSecret") .redirectUri("redirectUri") .build()); // 生成授权页面 authRequest.authorize("state"); // 授权登录后会返回code(auth_code(仅限支付宝))、state,1.8.0版本后,可以用AuthCallback类作为回调接口的参数 // 注:JustAuth默认保存state的时效为3分钟,3分钟内未使用则会自动清除过期的state authRequest.login(callback); ``` #### Builder 方式一 静态配置 `AuthConfig` ```java AuthRequest authRequest = AuthRequestBuilder.builder() .source("github") .authConfig(AuthConfig.builder() .clientId("clientId") .clientSecret("clientSecret") .redirectUri("redirectUri") .build()) .build(); // 生成授权页面 authRequest.authorize("state"); // 授权登录后会返回code(auth_code(仅限支付宝))、state,1.8.0版本后,可以用AuthCallback类作为回调接口的参数 // 注:JustAuth默认保存state的时效为3分钟,3分钟内未使用则会自动清除过期的state authRequest.login(callback); ``` #### Builder 方式二 动态获取并配置 `AuthConfig` ```java AuthRequest authRequest = AuthRequestBuilder.builder() .source("gitee") .authConfig((source) -> { // 通过 source 动态获取 AuthConfig // 此处可以灵活的从 sql 中取配置也可以从配置文件中取配置 return AuthConfig.builder() .clientId("clientId") .clientSecret("clientSecret") .redirectUri("redirectUri") .build(); }) .build(); Assert.assertTrue(authRequest instanceof AuthGiteeRequest); System.out.println(authRequest.authorize(AuthStateUtils.createState())); ``` #### Builder 方式支持自定义的平台 ```java AuthRequest authRequest = AuthRequestBuilder.builder() // 关键点:将自定义实现的 AuthSource 配置上 .extendSource(AuthExtendSource.values()) // source 对应 AuthExtendSource 中的枚举 name .source("other") // ... 其他内容不变,参考上面的示例 .build(); ``` ## 其他 - [CONTRIBUTORS](https://www.justauth.cn/contributors.html) - [CHANGELOGS](https://www.justauth.cn/update.html) - [PLAN](https://gitee.com/xingyuv/JustAuth/issues/IUGRK) ## 贡献者列表 [![contributors](https://whnb.wang/contributors/xingyuv/JustAuth)](https://whnb.wang) ## Stars 趋势 ### Gitee [![Stargazers over time](https://whnb.wang/img/xingyuv/JustAuth?e=604800)](https://whnb.wang/yadong.zhang/JustAuth?e=604800) ### Github [![Stargazers over time](https://starchart.cc/justauth/JustAuth.svg)](https://starchart.cc/justauth/JustAuth) ### ProductHunt JustAuth - Login, so easy! | Product Hunt Embed