首页 > 其他分享 >牛逼!Github上最有价值的一个开源项目!

牛逼!Github上最有价值的一个开源项目!

时间:2023-09-14 21:35:56浏览次数:41  
标签:Github 项目 builder source 开源 build authRequest JustAuth redirectUri

哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!

今天介绍的这个项目,我愿称之为Github最有价值的开源项目!

一个小而全而美的第三方登录开源组件,相信你一定能用的上~

JustAuth

图片

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

目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack和 Line 等第三方平台的授权登录。

图片

基本上你所见可用的平台都已经集成进去,并且还直充各种自定义服务,API设计简单,可以快速接入,尽量让开发者用起来没有障碍感!

快速开始

引入依赖

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

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

# hutool-http
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-http</artifactId>
    <version>5.7.7</version>
</dependency>

# httpclient
<dependency>
 <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient</artifactId>
   <version>4.5.13</version>
</dependency>

# okhttp
<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>4.9.1</version>
</dependency>

调用api

1.普通方式
// 创建授权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);

2.Builder 方式一
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()));

3.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()));

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

项目地址

项目名称:JustAuth
Star:14.2K
Github:https://github.com/justauth/JustAuth

我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!如果我的内容对你有所帮助,记得点个赞支持一下哦~

标签:Github,项目,builder,source,开源,build,authRequest,JustAuth,redirectUri
From: https://www.cnblogs.com/oldfish517/p/17703500.html

相关文章

  • idea使用设置grade构建项目遇到的坑
    坑1:构建提示无法通过配置文件构建 解决办法:经过查明是系统自动更新将gradle的配置默认为gradle,现在改为idea。问题解决 坑二:设置程序参数,给配置avtive设置初始值  ......
  • HBase学习5(HBase java编程:创建项目,创建删除表,数据增删改查)
    1.准备工作1.1创建IDEAMaven项目其中名字为hbase_op,groupid为cn.itcast然后导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>&l......
  • IDEA 22.2.3 创建web项目及Tomcat部署与服务器初始界面修改(保姆版)
    开始前请确认自己的Tomcat、JDK已经安装配置完毕不同版本的IDEA创建配置流程可能不同,演示中的IDEA版本号为22.2.3本教程创作时间为2023/09/141.创建项目通过下图路径进入创建界面,项目名称、路径、JDK都选择完毕后点击Create创建2.创建web目录右键单击目录名呼出二级菜单......
  • 个人项目:Java实现论文查重
    Java实现简易论文查重软件工程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12作业要求个人项目作业目标学习PSP表格,简易实现论文查重功能github链接https://github.com/HelpmeOOUT/RWL/tree/main/3121005006PSPPSP2.1PersonalSoftwareProcessS......
  • ⛳ 将本地已有的项目上传到 git 仓库
    ⛳将本地已有的项目上传到git仓库有两种方法: 一、克隆+拷贝 二、强行合并两个仓库......
  • Flipper 调试 react native 项目
    一、安装:1.在官网下载桌面应用Flipper官网地址FlipperGitHub首页2.打开程序,执行setupdoctor检测环境是否缺失参考官方文档二、使用全部安装完以后启动reactnative项目,flipper会检测到运行中的项目模拟器以expo构建的项目为例:1.安装expo-dev-client构建开......
  • django项目(博客二)
    扩展1:admin路由分发的本质路由分发本质include可以无限制的嵌套N多层url(r'^index/',([],None,None))扩展2:由于url方法第一个参数是正则表达式,所有当路由特别多的时候,可能会出现被顶替的情况,针对这种情况有两种解决方式建好路由,先和视图函数继续试验一下,避免路由被顶替......
  • 软件测评中心测试项目及测试过程简析,CMA、CNAS软件测试报告获取
    软件测试是产品周期中必不可少的一步,可以更好的保障软件质量,那么我们所知的软件测评中心一般有哪些测试项目以及测试流程是如何?和小编一起往下看看吧!一、软件测评中心的测试项目1、功能测试:通过模拟用户使用场景,测试软件的各项功能是否正常、稳定。2、性能测试:通......
  • java项目log4j配置
    1.添加maven依赖<dependencies><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>&l......
  • vue3项目 基于vuedraggable插件实现拖拽上下移动
    //父页面<template><divclass="main_body"><blockTitletitle="事件详情"/><a-formref="formRef":model="formValue"style="width:100%"class="form_bo......