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
What is this?JustAuth is a small, feature-complete Java library for third-party OAuth login. It integrates dozens of Chinese and international providers, so you can add social login without wrestling each platform's own SDK.
So it is a Java library I add to my project, not a service I have to run?It is a tool library, not a service: add it as a Maven or Gradle dependency and call its API from your own code. There is nothing to deploy or host.
How do I add it to a project?Add the JustAuth dependency via Maven or Gradle, plus one HTTP tool of your choice - hutool-http, httpclient or okhttp. Then configure an AuthConfig and call the login API directly or in the builder style shown in the README.
Do I need to bring my own HTTP client, or is one bundled?You supply the HTTP client yourself - JustAuth deliberately avoids depending on one specific implementation. If your project already has a lower version of it, exclude that first, then add the newer one.
Any catch with the snapshot versions?Snapshot builds are for trying new features early - they are not guaranteed stable, and the README says not to use them in production. Stick to stable releases.
Who actually uses it?Companies, organizations and individuals use it for learning, research, production environments and commercial products. The README keeps a public user list you can register with.
Which login providers does it support?Dozens, and still expanding: Chinese platforms such as Gitee, Weibo, DingTalk, Baidu, Alipay, QQ, WeChat, Taobao, Douyin, Xiaomi, Huawei, JD, Meituan and Feishu, plus international ones like GitHub, Google, Facebook, Twitter, LinkedIn, Microsoft, Amazon, Slack, Line, GitLab and StackOverflow.
Can I hook it up to my own OAuth service?Yes. You can define a custom OAuth platform to adapt your own OAuth server, and you can also customize scopes and the state cache, including distributed cache components.
Creator
justauth
Size
9.4 MB
Stars
17.5K
Age
7y
Commits · 90 Days