介绍 JustAuth

JustAuth是一个开源的Java库,用于简化QQ、微信、微博和GitHub等社交平台的授权登录及用户信息获取。它提供统一API和简单配置,无需关注开放平台文档。

JustAuth是一个开源的Java社交登录组件,可以通过简单的配置即可实现 QQ、微信、新浪微博、Github 等社交平台的登录和用户信息获取。

特点

  1. 授权登录:支持 QQ、微信、新浪微博、Github 等社交平台登录授权。
  2. 用户信息获取:获取用户在授权平台上的基本信息,例如昵称、头像等。
  3. 统一API:JustAuth以统一的API输出授权信息,简化了后续的开发流程。
  4. 简单易用:只需简单配置即可实现社交登录授权和用户信息获取。
  5. 无需关注开放平台文档:JustAuth已经帮你处理好了各种API的访问参数和协议。

使用方法

  1. 引入依赖

    <dependency>
        <groupId>me.zhyd.oauth</groupId>
        <artifactId>JustAuth</artifactId>
        <version>1.15.10</version>
    </dependency>
    

     

  2. 配置文件

    在resources下创建auth.properties文件,配置应用的信息。

    # client_id 为第三方应用的appId
    # client_secret 为第三方应用的appSecret
    github.client_id=填写你的client_id
    github.client_secret=填写你的client_secret
    
    # redirect_uri 为第三方应用的回调地址
    # 通常为 "http://localhost:端口号/登录接口名/第三方平台名"
    github.redirect_uri=填写你的重定向地址
    

     

  3. 编写代码

    // 创建 Github 授权请求
    AuthRequest authRequest = new AuthGithubRequest(AuthConfig.builder()
            .clientId("你的appId")
            .clientSecret("你的appSecret")
            .redirectUri("http://localhost:端口号/登录接口名/github")
            .build());
    
    // 获取第三方用户信息
    AuthResponse response = new AuthGithubRequest(AuthConfig.builder()
            .clientId("你的appId")
            .clientSecret("你的appSecret")
            .redirectUri("http://localhost:端口号/登录接口名/github")
            .build()).getUserInfo(authToken);
    
    // 返回结果中包含第三方用户信息
    if (response.ok()) {
        AuthUser user = (AuthUser) response.getData();
    }
    

     

    更详细的使用方法和示例可以查看JustAuth的官方文档。

 

史上最全的整合第三方登录的工具,目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软和今日头条等第三方平台的授权登录。 Login, so easy!JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录SDK,让登录变得So easy!项目开源地址:gitee | github特点废话不多说,就俩字:全:已集成十多家第三方平台(国内外常用的基本都已包含),后续依然还有扩展计划!简:API就是奔着最简单去设计的(见后面快速开始),尽量让您用起来没有障碍感!快速开始引入依赖     me.zhyd.oauth     JustAuth     1.8.0 调用api// 创建授权request AuthRequest authRequest = new AuthGiteeRequest(AuthConfig.builder()         .clientId("clientId")         .clientSecret("clientSecret")         .redirectUri("redirectUri")         .state("state")         .build()); // 生成授权页面 authRequest.authorize(); // 授权登录后会返回code(auth_code(仅限支付宝))、state,1.8.0版本后,可以用AuthCallback类作为回调接口的参数 authRequest.login(callback);注:1.8.0版本后,增加了state参数校验,用于防止CSRF。强烈建议,保证单次流程内state的唯一性,且每个state只可用一次。配套Demo:JustAuth-demo具体的例子可以参考:实现Gitee授权登录实现Github授权登录API列表平台API类 SDKAuthGiteeRequest参考文档AuthGithubRequest参考文档AuthWeiboRequest参考文档AuthDingTalkRequest参考文档AuthBaiduRequest参考文档AuthCodingRequest参考文档AuthTencentCloudRequest参考文档AuthOschinaRequest参考文档AuthAlipayRequest参考文档AuthQqRequest参考文档AuthWeChatRequest参考文档AuthTaobaoRequest参考文档AuthGoogleRequest参考文档AuthFacebookRequest参考文档AuthDouyinRequest参考文档AuthLinkedinRequest参考文档AuthMicrosoftRequest参考文档AuthMiRequest参考文档AuthToutiaoRequest参考文档AuthCsdnRequest无请知悉:经咨询优快云官方客服得知,优快云的授权开放平台已经下线。如果以前申请过的应用,可以继续使用,但是不再支持申请新的应用。so, 本项目中的优快云登录只能针对少部分用户使用了后续开发计划参考:[开发计划] 待扩展的第三方平台另外,期待您和我一起完善这个项目!贡献代码fork本项目到自己的repo把fork过去的项目也就是你仓库中的项目clone到你的本地修改代码commit后push到自己的库发起PR(pull request) 请求等待作者合并致谢在项目立项初期,也对当前开源圈的一些相同类型的项目作过调研,同时本项目也参考过这些项目,再次感谢开源圈内的朋友。YurunOAuthLogin: PHP 第三方登录授权 SDK阿里妈妈MUX倾力打造的矢量图标库-iconfont: 本文档中的图标大部分取自该平台
### JustAuth 库使用指南 JustAuth 是一款专注于第三方登录的开源 Java SDK,支持多种认证方式以及主流的身份验证协议。以下是关于如何使用 JustAuth 进行开发的相关说明: #### 1. 初始配置 要开始使用 JustAuth,需引入其 Maven 或 Gradle 依赖项。以下是一个典型的 Maven 配置示例[^1]: ```xml <dependency> <groupId>com.xiaomi.infra</groupId> <artifactId>jap-core</artifactId> <version>最新版本号</version> </dependency> ``` 对于 Gradle 用户,则可以添加如下内容: ```gradle implementation 'com.xiaomi.infra:jap-core:最新版本号' ``` #### 2. 支持的认证方式 JustAuth 提供了广泛的认证选项,包括但不限于 Form、HTTP API(Basic/Digest/Bearer 认证)、MFA、OAuth2、OIDC、SSO 和 Social 登录等方式[^1]。 #### 3. 初始化 AuthRequest 对象 通过创建 `AuthRequest` 实例来初始化特定平台的授权请求。例如,针对 GitHub 平台的集成可按以下方式进行设置: ```java // 创建 GitHub 授权对象实例 AuthGitHubRequest authRequest = (AuthGitHubRequest) new AuthConfig() .setClientId("your_client_id") // 替换为实际客户端 ID .setClientSecret("your_client_secret") // 替换为实际密钥 .setState("state_code") // 可选状态参数用于防止 CSRF 攻击 .build(AuthSource.GITHUB); ``` #### 4. 获取授权 URL 调用 `getAuthorizeUrl()` 方法获取用户的重定向链接以便完成身份验证流程。 ```java String authorizeUrl = authRequest.getAuthorizeUrl(); System.out.println("Redirect to:" + authorizeUrl); // 输出跳转地址给前端页面处理 ``` #### 5. 处理回调并获取用户信息 当用户成功返回至应用指定的回调路径时,可通过传递 code 参数进一步交换访问令牌,并最终提取用户资料数据。 ```java try { String code = request.getParameter("code"); // 假设这是来自 HTTP 请求中的查询字符串部分 BaseToken tokenResult = authRequest.getToken(code); UserInfo userInfo = authRequest.getUserInfo(tokenResult); System.out.printf("User Info -> %s%n", userInfo.toString()); } catch (Exception e) { e.printStackTrace(); // 错误日志记录机制应更完善以适应生产环境需求 } ``` #### 6. 下一版功能展望 未来版本计划增加对 LDAP 协议的支持,覆盖更多加密哈希算法如 clear, k5key, md5 等多种形式;同时也致力于优化现有的 OAuth2.0 和 OIDC 功能模块,提供更多定制化能力满足不同场景下的业务诉求[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值