15.8k+超全的第三方登录开源库,开箱即用!

墨林一码农 2024-03-02 15:15:46



墨林码农专注分享开源项目, 精选开源社区技术干货,分享Github、Gitee上有趣、有价值的项目,一起学习,一起成长。

今天为大家带来一款超全的第三方平台登录开源库:JustAuth,使用 Java 语言开发,支持国内外数十家知名的第三方平台的 OAuth 登录,让我们脱离繁琐的第三方登录 SDK,登录变得更简单!

JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow 等国内外数十家第三方平台,目前还在持续扩展中!

JustAuth 开箱即用,一杯茶的功夫可快速接入第三方系统。在2019年曾被 Gitee 社区评选为最有价值开源项目。

目前该项目已在 Gitee 上获得了 9.3K stars,2.9k forks。在 GitHub 上更是斩获了 15.8k stars,2.7k forks。

️ 功能特性开箱即用,快速接入提供统一接口,支持接入任意 OAuth 网站,快速实现 OAuth 登录功能集成国内外数十家知名的第三方平台的 OAuth 登录自定义 State 缓存,支持各种分布式缓存组件自定义 OAuth 平台,更容易适配自有的 OAuth 服务自定义 Http 实现,选择权完全交给开发者,不会单独依赖某一具体实现自定义 Scope,支持更完善的授权体系,以适配更多的业务场景代码规范、结构清晰、逻辑简单,严格遵守阿里巴巴编码规约OAuth2 流程

授权流程:

流程解析:

(A) 用户打开客户端以后,客户端要求用户给予授权

(B) 用户同意给予客户端授权

(C) 客户端使用上一步获得的授权,向认证服务器申请令牌

(D) 认证服务器对客户端进行认证以后,确认无误,同意发放令牌

(E) 客户端使用令牌,向资源服务器申请获取资源

(F) 资源服务器确认令牌无误,同意向客户端开放资源

快速体验

开发环境:

JDK 1.7+Maven 3.5+

1、在 pom.xml 文件中引入依赖

目前推荐使用稳定版 1.16.6

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

2、引入 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>

3、调用api

普通方式:

在第三放平台申请开发者账号,创建相关的应用后,获取clientId、clientSecret、redirectUri(或AppID、AppKey和网站回调域)

// 创建授权requestAuthRequest authRequest = new AuthGiteeRequest(AuthConfig.builder() .clientId("clientId/AppID") .clientSecret("clientSecret/AppKey") .redirectUri("redirectUri/网站回调域") .build());// 生成授权页面authRequest.authorize("state");// 授权登录后会返回code(auth_code(仅限支付宝))、state,1.8.0版本后,可以用AuthCallback类作为回调接口的参数// 注:JustAuth默认保存state的时效为3分钟,3分钟内未使用则会自动清除过期的stateauthRequest.login(callback);

代理方式(针对国外平台,如微软、谷歌、脸书等):

AuthRequest authRequest = new AuthGoogleRequest(AuthConfig.builder() .clientId("Client ID") .clientSecret("Client Secret") .redirectUri("应用回调地址") // 针对国外平台配置代理 .httpConfig(HttpConfig.builder() // Http 请求超时时间 .timeout(15000) // host 和 port 请修改为开发环境的参数 .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 10080))) .build()) .build());

详细的demo参考:

https://github.com/justauth/JustAuth-demo

结束语

几个简单的字符,就能创造出欢乐,

几个简单的号码,便能写出奇迹。

一个键盘,就能畅游世界,

一根网线,便能知晓天下。

创作不易,感谢大家的支持。后续也会分享更多的干货和技术资讯,您的阅读就是对小编的支持,再次感谢各位老铁!

0 阅读:301

墨林一码农

简介:感谢大家的关注