JustAuth README

The project's README from github.com/justauth/JustAuth. As one markdown file: README.md.

Login, so easy.

star github star


star


QQ 群:230017570
微信群:justauth (备注justauth或者ja)
帮助文档:www.justauth.cn

什么是 JustAuth?

JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得So easy!

JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow等国内外数十家第三方平台。更多请参考已集成的平台

有哪些特点?

  1. 全:已集成十多家第三方平台(国内外常用的基本都已包含),仍然还在持续扩展中(开发计划)!
  2. 简:API就是奔着最简单去设计的(见后面快速开始),尽量让您用起来没有障碍感!

有哪些功能?

快速开始

引入依赖

<dependency>
    <groupId>me.zhyd.oauth</groupId>
    <artifactId>JustAuth</artifactId>
    <version>{latest-version}</version>
</dependency>

latest-version 可选:

  • 稳定版:
  • 快照版:

    注意:快照版本是功能的尝鲜,并不保证稳定性。请勿在生产环境中使用。

如何引入快照版本

JustAuth 的快照版本托管在 ossrh 上,所以要指定下载地址。

<repositories>
    <repository>
        <id>ossrh-snapshot</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

如果你想第一时间获取 JustAuth 的最新快照,可以添加下列代码,每次构建时都检查是否有最新的快照(默认每天检查)。

       <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
+           <updatePolicy>always</updatePolicy>
            <enabled>true</enabled>
        </snapshots>

如下任选一种 HTTP 工具 依赖,项目内如果已有,请忽略。另外需要特别注意,如果项目中已经引入了低版本的依赖,请先排除低版本依赖后,再引入高版本或者最新版本的依赖

调用api

普通方式

// 创建授权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

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

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 方式支持自定义的平台

AuthRequest authRequest = AuthRequestBuilder.builder()
    // 关键点:将自定义实现的 AuthSource 配置上
    .extendSource(AuthExtendSource.values())
    // source 对应 AuthExtendSource 中的枚举 name
    .source("other")
    // ... 其他内容不变,参考上面的示例
    .build();

赞助和支持

感谢以下赞助商的支持:

我要赞助

JustAuth 的用户

有很多公司、组织和个人把 JustAuth 用于学习、研究、生产环境和商业产品中,包括(但不限于):

怎么没有我?登记

开源推荐

更多推荐,请参考:JustAuth - 开源推荐

鸣谢

图片引用自lets-mica

其他

贡献者列表

contributors

Stars 趋势

Gitee

Stargazers over time

Github

Stargazers over time

ProductHunt

JustAuth - Login, so easy! | Product Hunt Embed

JustAuth (justauth/JustAuth)

Searching Database…

17.5K ·GitHub
这是什么?JustAuth 是一个小巧但功能齐全的 Java 第三方 OAuth 登录库。它集成了几十个国内外平台,让你不用去折腾各个平台自己的 SDK,就能轻松加上社交登录。
所以它是我加到自己项目里的 Java 库,而不是需要我自己运行的服务?它是一个工具库,不是服务:把它作为 Maven 或 Gradle 依赖加进来,然后在你自己的代码里调用它的 API 就行。不需要部署,也不需要托管。
怎么把它加到项目里?通过 Maven 或 Gradle 添加 JustAuth 依赖,再自己选一个 HTTP 工具——hutool-http、httpclient 或 okhttp。然后配置一个 AuthConfig,按照 README 里演示的方式,直接调用登录 API 或者用 builder 风格调用的。
HTTP 客户端要我自己带吗,还是它自带?HTTP 客户端需要你自己提供——JustAuth 特意不依赖任何具体实现。如果你的项目里已经有它的较低版本,先把它排除掉,再引入新的版本。
快照版本有什么坑吗?快照版本是用来提前体验新功能的——不保证稳定,README 也明确说不要在生产环境使用。请尽量使用正式稳定版。
都有谁在用它?很多公司、组织和个人都在用它做学习、研究、生产环境和商业产品。README 里维护了一份公开的用户列表,你也可以去登记。
它支持哪些登录平台?几十个,而且还在不断增加:国内平台有 Gitee、微博、钉钉、百度、支付宝、QQ、微信、淘宝、抖音、小米、华为、京东、美团和飞书,国外平台有 GitHub、Google、Facebook、Twitter、LinkedIn、Microsoft、Amazon、Slack、Line、GitLab 和 StackOverflow。
能接入我自己的 OAuth 服务吗?可以。你可以自定义 OAuth 平台来适配自己的 OAuth 服务器,还可以自定义 scope 和 state 缓存,包括使用分布式缓存组件。
Creator
justauth
Size
9.4 MB
Stars
17.5K
Age
7y
Commits · 90 Days