开源三方授权登录工具库JustAuth

JustAuth是一个开源的Java第三方登录集成工具类库,它可以帮助开发者快速集成第三方登录功能,极大地简化了开发流程,提高了开发效率。

以下是关于JustAuth的详细介绍:

一、概述

  • 定义:JustAuth是一个集成了国内外数十家第三方平台的登录认证工具库,支持OAuth2等授权模式。
  • 目的:让开发者脱离繁琐的第三方登录SDK,使登录变得简单。
  • 开源平台:JustAuth在GitHub和Gitee上均有开源,项目地址分别为GitHubGitee

二、特点

  1. 全面性:已集成国内外数十家常用第三方平台,如Github、Gitee、微信、QQ、微博、Google、Facebook、Twitter等,且仍在持续扩展中。
  2. 简洁性:API设计简洁,上手容易,尽量让开发者使用起来没有障碍感。
  3. 灵活性
    • 支持自定义State缓存,可以适配各种分布式缓存组件。
    • 支持自定义OAuth平台,更容易适配自有的OAuth服务。
    • 支持自定义HTTP实现,不会单独依赖某一具体实现。
    • 支持自定义Scope,支持更完善的授权体系。

三、支持的平台

JustAuth支持的平台包括但不限于:

  • 国内平台:Github、Gitee、支付宝、新浪微博、微信、QQ、钉钉、百度、Coding、腾讯云、OSChina、淘宝等。
  • 国际平台:Google、Facebook、Twitter、LinkedIn、StackOverflow、Pinterest、YouTube、Microsoft等。

四、使用流程

使用JustAuth实现第三方登录的大致流程如下:

  1. 前期准备
    • 在需要接入的第三方平台上注册应用,获取Client ID和Client Secret。
    • 配置应用的回调地址(Redirect URI)。
  2. 开发准备
    • 在Java项目中引入JustAuth的依赖。
      <dependency>
          <groupId>me.zhyd.oauth</groupId>
          <artifactId>JustAuth</artifactId>
          <version>${latest.version}</version>
      </dependency>
      
    • 配置项目中的application.yml或application.properties文件,设置JustAuth的相关参数。
  3. 编写代码
    • 创建授权请求实例,配置Client ID、Client Secret和Redirect URI等参数。
    • 调用授权请求实例的authorize方法,获取授权链接,并重定向用户到第三方平台的授权页面。
    • 在回调接口中处理授权响应,获取访问令牌(Access Token)和用户信息。
    • 使用访问令牌向第三方平台请求用户信息(如用户ID、头像、昵称等)。
    • 使用用户信息创建或更新本地用户账号,完成用户登录。

        以钉钉登录集成为例:

》首先在钉钉开发者中心创建要集成的应用:

》然后编写钉钉登录和回调函数的代码:

@RestController
@RequestMapping("/oauth")
public class RestAuthController {

    @RequestMapping("/render")
    public void renderAuth(HttpServletResponse response) throws IOException {
        AuthRequest authRequest = getAuthRequest();
        response.sendRedirect(authRequest.authorize(AuthStateUtils.createState()));
    }

    @RequestMapping("/callback")
    public Object login(AuthCallback callback) {
        AuthRequest authRequest = getAuthRequest();
        return authRequest.login(callback);
    }

    private AuthRequest getAuthRequest() {
        return new AuthDingTalkRequest(AuthConfig.builder()
                .clientId("API Key")
                .clientSecret("Secret Key")
                .redirectUri("应用回调地址")
                .build());
    }
}

》登录授权成功后返回的信息如下:

{
    "code":2000,
    "data":{
        "gender":"UNKNOWN",
        "nickname":"码上行动",
        "rawUserInfo":{
            "nick":"码上行动",
            "unionid":"4FiSzxIAgiEiE",
            "dingId":"$:LWCP_xYfqxZ3z99w==",
            "openid":"hHkfeC0xxfLr85zQiEiE",
            "main_org_auth_high_level":false
        },
        "source":"DINGTALK",
        "token":{
            "expireIn":0,
            "openId":"hHkfeC0XNixr85zQiEiE",
            "unionId":"4FiSzv7YnxIE5IAgiEiE"
        },
        "username":"码上行动",
        "uuid":"4FiSzv7YnxIE5IAgiEiE"
    }
}

五、注意事项

  • 在使用JustAuth时,需要确保项目中已经包含了HTTP实现工具,如hutool-http、httpclient或okhttp等。
  • JustAuth默认集成simple-http作为HTTP通用接口,但也可以根据项目需求自定义HTTP实现。
  • 在生产环境中使用时,建议仔细测试并验证JustAuth的稳定性和安全性。

六、总结

JustAuth是一个功能强大、易于使用的Java第三方登录集成工具类库,它可以帮助开发者快速集成第三方登录功能,提高开发效率。通过JustAuth,开发者可以轻松地实现多平台登录认证,提升用户体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易道合之逍遥峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值