JustAuth:一键集成第三方登录,让登录变得简单

837 阅读3分钟

嗨,大家好,我是小华同学,关注我们获得 “最新、最全、最优质” 开源项目和高效工作学习方法

image.png

JustAuth 是一个 小而全而美 的第三方登录开源组件,目前已支持 Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack 和 Line 等第三方平台的授权登录。正如它的口号所说:“Login, so easy!”

功能特点

  • : 支持国内外多家第三方平台登录
  • : 集成简单,提供丰富的 Demo 示例
  • : 代码结构清晰,易于拓展

应用场景

JustAuth因其轻量级和易用性,被广泛应用于各种需要第三方登录的场景中。无论是个人博客、企业网站还是移动应用,JustAuth都能提供稳定可靠的登录服务。

快速集成第三方登录

对于开发者来说,集成第三方登录一直是一个头疼的问题。JustAuth 提供了一套统一的接口,让开发者可以快速集成各种第三方登录。

多平台账号统一管理

JustAuth 支持多家第三方平台,可以帮助用户实现多平台账号的统一管理。

个人博客

对于个人博客来说,集成JustAuth可以让用户通过他们常用的社交媒体账号快速登录,提高了用户体验。

企业网站

企业网站通过JustAuth集成第三方登录,可以简化用户注册和登录流程,降低用户流失率。

移动应用

在移动应用中,JustAuth可以为用户提供更多的登录选择,使用户可以快速登录并开始使用应用。

社交登录

为网站或应用提供社交登录功能,提高用户体验。

单点登录(SSO)

实现多个系统之间的单点登录,简化用户登录过程。

使用方法

  1. 引入依赖

    <dependency>
        <groupId>me.zhyd.oauth</groupId>
        <artifactId>JustAuth</artifactId>
        <version>最新版本</version>
    </dependency>
    
  2. 配置第三方平台参数

    以 GitHub 为例,您需要配置以下参数:

    github.client.id=你的client_id
    github.client.secret=你的client_secret
    github.redirect.uri=你的回调地址
    
  3. 编写代码

    @Autowired
    private OAuthService oauthService;
    
    public void login(String type) {
        OAuthRequest request = new OAuthRequest(type);
        // 设置其他参数,如 state 等
        request.setState("state");
        // 获取授权链接
        String authorizeUrl = oauthService.getAuthorizeUrl(request);
        // 重定向到授权链接
        response.sendRedirect(authorizeUrl);
    }
    
  4. 处理回调

    @GetMapping("/callback")
    public void callback(String code, String state) {
        OAuthRequest request = new OAuthRequest("github");
        request.setCode(code);
        request.setState(state);
        // 获取 Access Token
        OAuthResponse response = oauthService.getAccessToken(request);
        // 根据 Access Token 获取用户信息
        UserInfo userInfo = oauthService.getUserInfo(response);
        // 业务处理
    }
    

示例

以下是一个使用 JustAuth 集成 GitHub 登录的完整示例:

@RestController
public class OAuthController {

    @Autowired
    private OAuthService oauthService;

    @GetMapping("/login")
    public void login() {
        OAuthRequest request = new OAuthRequest("github");
        // 设置回调地址
        request.setRedirectUri("http://yourdomain.com/callback");
        // 设置 state
        request.setState("state");
        // 获取授权链接
        String authorizeUrl = oauthService.getAuthorizeUrl(request);
        // 重定向到授权链接
        response.sendRedirect(authorizeUrl);
    }

    @GetMapping("/callback")
    public void callback(String code, String state) {
        OAuthRequest request = new OAuthRequest("github");
        request.setCode(code);
        request.setState(state);
        // 获取 Access Token
        OAuthResponse response = oauthService.getAccessToken(request);
        // 根据 Access Token 获取用户信息
        UserInfo userInfo = oauthService.getUserInfo(response);
        // 业务处理
    }
}

同类项目对比

  • SocialAuth: SocialAuth 是一个支持多种社交网络认证的 Java 库。与 JustAuth 相比,它的集成较为复杂,但支持的社交平台更多。
  • Spring Social: Spring Social 是 Spring 提供的一个社交网络集成框架。它主要针对 Spring 应用,与 JustAuth 相比,它的配置更为繁琐。

总结

JustAuth 作为一个简单、易用、美观的第三方登录组件,大大简化了开发者的集成工作。如果您正在寻找一个快速集成第三方登录的解决方案,那么 JustAuth 无疑是一个不错的选择。