最全的整合第三方登录的工具类


大家好,我是爱撸代码的开源大叔!

登录对于网站是一个必不可少的功能,如果去开发一个完整的登录功能,却又不是那么容易,第三方登录的方便性和快捷性,能够降低用户的注册、登录成本,但是第三方系统有很多,比如Github、Gitee、支付宝、新浪微博、微信等等,如果每个都去对接又很繁琐。

今天大叔给大家推荐一个第三方授权登录工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得简单!

功能简介

  • 集成国内外数十家第三方平台,快速接入登录平台

  • 自定义 Http 实现,开发者自主选择

  • 自定义缓存,支持各种分布式缓存组件

  • 自定义 OAuth 平台,更容易适配自建的 OAuth 服务

  • 自定义 Scope,支持完善的授权体系

接入流程

首先理解几个概念:

  • clientId: 客户端身份标识符(应用id),一般在申请完 Oauth 应用后,由第三方平台颁发
  • clientSecret: 客户端密钥,一般在申请完 Oauth 应用后,由第三方平台颁发
  • redirectUri: 应用回调地址,用户在确认第三方平台授权(登录)后,第三方平台会重定向到该地址,并携带code等参数
  • state: 用来保持授权会话流程完整性,防止CSRF攻击的安全的随机的参数,由开发者生成
  • uuid: 一般为第三方平台的用户ID。

快速开始

准备工作

  1. 申请注册第三方平台的开发者账号
  2. 创建第三方平台的应用,获取配置信息(accessKey, secretKey, redirectUri)
  3. 使用本工具实现授权登陆

引入依赖

1
2
3
4
5
<dependency>
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>1.16.5</version>
</dependency>

登录 API

1
2
3
4
5
6
7
8
9
10
/ 创建授权request
AuthRequest authRequest = new AuthGiteeRequest(AuthConfig.builder()
.clientId("clientId")
.clientSecret("clientSecret")
.redirectUri("redirectUri")
.build());
// 生成授权页面
authRequest.authorize("state");
// JustAuth默认保存state的时效为3分钟,3分钟内未使用则会自动清除过期的state
authRequest.login(callback);

项目地址

1
https://github.com/justauth/JustAuth

总结

JustAuth 集成数十家第三方登录平台,最简单的设计方式,使用简单方便,感兴趣的同学赶快去试试吧~


  目录