<p align="center">
<a href="https://www.justauth.cn"><img src="https://gitee.com/yadong.zhang/static/raw/master/JustAuth/Justauth.png" width="400"></a>
</p>
<p align="center">
<strong>Login, so easy.</strong>
</p>
<p align="center">
<a target="_blank" href="https://search.maven.org/search?q=JustAuth">
<img src="https://img.shields.io/github/v/release/justauth/JustAuth?style=flat-square" ></img>
</a>
<a target="_blank" href="https://oss.sonatype.org/content/repositories/snapshots/me/zhyd/oauth/JustAuth/">
<img src="https://img.shields.io/nexus/s/https/oss.sonatype.org/me.zhyd.oauth/JustAuth.svg?style=flat-square" ></img>
</a>
<a target="_blank" href="https://gitee.com/yadong.zhang/JustAuth/blob/master/LICENSE">
<img src="https://img.shields.io/apm/l/vim-mode.svg?color=yellow" ></img>
</a>
<a target="_blank" href="https://www.oracle.com/technetwork/java/javase/downloads/index.html">
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" ></img>
</a>
<a target="_blank" href="https://www.justauth.cn" title="参考文档">
<img src="https://img.shields.io/badge/Docs-latest-blueviolet.svg" ></img>
</a>
<a href="https://codecov.io/gh/justauth/JustAuth">
<img src="https://codecov.io/gh/justauth/JustAuth/branch/master/graph/badge.svg?token=zYiAqd9aFz" />
</a>
<a href='https://gitee.com/yadong.zhang/JustAuth/stargazers'>
<img src='https://gitee.com/yadong.zhang/JustAuth/badge/star.svg?theme=gvp' alt='star'></img>
</a>
<a target="_blank" href='https://github.com/zhangyd-c/JustAuth'>
<img src="https://img.shields.io/github/stars/zhangyd-c/JustAuth.svg?style=social" alt="github star"></img>
</a>
</p>
-------------------------------------------------------------------------------
<p align="center">
<img src='./docs/media/75a3c076.png' alt='star'></img>
</p>
-------------------------------------------------------------------------------
QQ 群:230017570
微信群:justauth (备注`justauth`或者`ja`)
帮助文档:[www.justauth.cn](https://www.justauth.cn)
## 什么是 JustAuth?
JustAuth,如你所见,它仅仅是一个**第三方授权登录**的**工具类库**,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得**So easy!**
JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow等国内外数十家第三方平台。更多请参考<a href="https://www.justauth.cn" target="_blank">已集成的平台</a>
## 有哪些特点?
1. **全**:已集成十多家第三方平台(国内外常用的基本都已包含),仍然还在持续扩展中([开发计划](https://gitee.com/yadong.zhang/JustAuth/issues/IUGRK))!
2. **简**:API就是奔着最简单去设计的(见后面`快速开始`),尽量让您用起来没有障碍感!
## 有哪些功能?
- 集成国内外数十家第三方平台,实现快速接入。<a href="https://www.justauth.cn/quickstart/how-to-use.html" target="_blank">参考文档</a>
- 自定义 State 缓存,支持各种分布式缓存组件。<a href="https://www.justauth.cn/features/customize-the-state-cache.html" target="_blank">参考文档</a>
- 自定义 OAuth 平台,更容易适配自有的 OAuth 服务。<a href="https://www.justauth.cn/features/customize-the-oauth.html" target="_blank">参考文档</a>
- 自定义 Http 实现,选择权完全交给开发者,不会单独依赖某一具体实现。<a href="https://www.justauth.cn/quickstart/how-to-use.html#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F" target="_blank">参考文档</a>
- 自定义 Scope,支持更完善的授权体系。<a href="https://www.justauth.cn/features/customize-scopes.html" target="_blank">参考文档</a>
- 更多...<a href="https://www.justauth.cn" target="_blank">参考文档</a>
## 快速开始
### 引入依赖
```xml
<dependency>
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>{latest-version}</version>
</dependency>
```
> **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)
> > 注意:快照版本是功能的尝鲜,并不保证稳定性。请勿在生产环境中使用。
>
> <details>
> <summary>如何引入快照版本</summary>
>
> JustAuth 的快照版本托管在 ossrh 上,所以要指定下载地址。
>
> ```xml
> <repositories>
> <repository>
> <id>ossrh-snapshot</id>
> <url>https://oss.sonatype.org/content/repositories/snapshots</url>
> <snapshots>
> <enabled>true</enabled>
> </snapshots>
> </repository>
> </repositories>
> ```
>
> 如果你想第一时间获取 JustAuth 的最新快照,可以添加下列代码,每次构建时都检查是否有最新的快照(默认每天检查)。
>
> ```diff
> <url>https://oss.sonatype.org/content/repositories/snapshots</url>
> <snapshots>
> + <updatePolicy>always</updatePolicy>
> <enabled>true</enabled>
> </snapshots>
> ```
>
> </details>
如下**任选一种** HTTP 工具 依赖,_项目内如果已有,请忽略。另外需要特别注意,如果项目中已经引入了低版本的依赖,请先排除低版本依赖后,再引入高版本或者最新版本的依赖_
- hutool-http
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-http</artifactId>
<version>5.7.7</version>
</dependency>
```
- httpclient
```xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
```
- okhttp
```xml
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.1</version>
</dependency>
```
### 调用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()
// 关键点:将自定义实现的
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Gitee_最有价值开源项目_100_小而全而美的第三方登录开源组件。目前已支持Github_JustAuth.zip (176个子文件)
.editorconfig 344B
.gitignore 407B
index.html 1020B
ScopeTest.java 66KB
AuthGoogleScope.java 43KB
AuthDefaultSource.java 32KB
GlobalAuthUtils.java 12KB
GlobalAuthUtilsTest.java 11KB
AuthAlipayRequest.java 10KB
AuthDefaultRequest.java 10KB
AuthSlackScope.java 9KB
AuthLinkedinRequest.java 8KB
AuthAmazonRequest.java 7KB
AuthTwitterRequest.java 7KB
AbstractAuthMicrosoftRequest.java 7KB
AuthElemeRequest.java 7KB
AuthOktaRequest.java 6KB
AuthWeChatMpRequest.java 6KB
AuthAppleRequest.java 6KB
Base64Utils.java 6KB
AuthHuaweiRequest.java 6KB
AuthFeishuRequest.java 6KB
AuthConfig.java 6KB
AuthOktaScope.java 6KB
AuthDouyinRequest.java 6KB
AuthWeChatOpenRequest.java 6KB
AuthJdRequest.java 6KB
AuthSlackRequest.java 6KB
AuthLineRequest.java 5KB
AuthMiRequest.java 5KB
AuthBaiduRequest.java 5KB
AuthQqRequest.java 5KB
AbstractAuthWeChatEnterpriseRequest.java 5KB
AuthMicrosoftScope.java 5KB
AuthGithubScope.java 5KB
AuthWeiboRequest.java 4KB
AuthCodingRequest.java 4KB
AuthKujialeRequest.java 4KB
AuthRenrenRequest.java 4KB
AuthFacebookRequest.java 4KB
AuthXmlyRequest.java 4KB
AuthToutiaoRequest.java 4KB
AuthChecker.java 4KB
AuthWeChatEnterpriseThirdQrcodeRequest.java 4KB
AuthTeambitionRequest.java 4KB
AuthPinterestRequest.java 4KB
AuthMeituanRequest.java 4KB
AuthTaobaoRequest.java 4KB
AuthRequestBuilderTest.java 4KB
AuthGoogleRequest.java 4KB
AuthStackOverflowRequest.java 4KB
AuthRenrenScope.java 4KB
Log.java 4KB
AbstractAuthDingtalkRequest.java 4KB
AuthOschinaRequest.java 4KB
AuthDefaultCache.java 4KB
AuthProginnRequest.java 3KB
AuthRequestBuilder.java 3KB
AuthGithubRequest.java 3KB
AuthGitlabRequest.java 3KB
AuthGiteeRequest.java 3KB
HttpUtils.java 3KB
LogTest.java 3KB
AuthDouyinScope.java 3KB
AuthExtendRequest.java 3KB
StringUtilsTest.java 3KB
AuthExtendRequestTest.java 3KB
AuthAfDianRequest.java 3KB
AuthSource.java 2KB
UuidUtils.java 2KB
AuthRequest.java 2KB
AuthLinkedinScope.java 2KB
AuthWeiboScope.java 2KB
UrlBuilderTest.java 2KB
AuthGitlabScope.java 2KB
AuthCsdnRequest.java 2KB
StringUtils.java 2KB
AuthHuaweiScope.java 2KB
UrlBuilder.java 2KB
AuthAliyunRequest.java 2KB
AuthCallback.java 2KB
AuthUserGender.java 2KB
AuthUser.java 2KB
AuthFacebookScope.java 2KB
AuthUserTest.java 2KB
AuthWeChatEnterpriseWebRequest.java 1KB
AuthException.java 1KB
AuthToutiaoErrorCode.java 1KB
AuthToken.java 1KB
AuthExtendSource.java 1KB
AuthDefaultStateCache.java 1KB
AuthGiteeScope.java 1KB
AuthScopeUtils.java 1KB
PkceUtil.java 1KB
AuthResponseStatus.java 1KB
AuthMicrosoftRequest.java 1KB
AuthMicrosoftCnRequest.java 1KB
AuthWeChatEnterpriseQrcodeRequest.java 1KB
AuthQqScope.java 1KB
AuthBaiduScope.java 1KB
共 176 条
- 1
- 2
资源评论
好家伙VCC
- 粉丝: 1479
- 资源: 6774
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 第负一章随堂代码(一).ipynb
- LabVIEW中英文虚拟键盘源程序 可输入数字、字母、汉字,能在 XP系统和Win7系统下检测并切换电脑里安装的
- 基数排序(Radix Sort)是一种非比较型的整数排序算法,其基本思想是按照从最低位到最高位的顺序对数字进行排序 基数排序可以
- 梦幻西游道人j240917
- zotero 6 插件,包含茉莉花、DOI、绿青蛙、sci-hub等11个常用插件
- 扫地机器人路径规划问题,算法是全覆盖内螺旋算法,使用MATLAB实现,下列为运行图过程截图 这段代码是一个扫地机器人的仿真程序
- 旅行商问题(Traveling Salesman Problem,简称 TSP)是组合优化中的一个经典问题,也是计算机科学中最著
- KPCA matlab代码,可分train和test 注释清晰
- 计算机科学中的基数排序算法原理与实现
- 基于YOLO和DeepSORT的行人检测跟踪源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功