号称第三方授权登录终结者!支持各大平台,便捷实用,让登录变得So easy!(带私活源码)

 作为一名开发者,很多人都遇到过对接第三方平台的需求。

在与第三方平台认证的时候,需要根据 SDK 实现认证的逻辑。

如果产品对接的平台少还好,如果需要与多个平台认证,那么相似的逻辑就会产生一些重复性的工作。

那么,有没有什么便捷的工具,能快速的解决第三方登录认证的问题呢?

有的,它就是我们今天要介绍的主角---JustAuth

JustAuth简介

JustAuth,见名知义。

正如它的名字一样,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK.

让登录变得So easy!

目前已支持的平台有:

  • Github

  • Gitee

  • 微博

  • 钉钉

  • 百度

  • Coding

  • 腾讯云开发者平台

  • OSChina

  • 支付宝

  • QQ

  • 微信

  • 淘宝

  • Google

  • Facebook

  • 抖音

  • 领英

  • 小米

  • 微软

  • 今日头条

  • Teambition

  • StackOverflow

  • Pinterest

  • 人人

  • 华为

  • 企业微信

  • 酷家乐

  • Gitlab

  • 美团

  • 饿了么

  • 推特

  • 飞书

  • 京东

  • 阿里云

  • 喜马拉雅

  • Amazon

特点

  • 全:已集成十多家第三方平台(国内外常用的基本都已包含),仍然还在持续扩展中(开发计划)!

  • 简:API就是奔着最简单去设计的(见后面快速开始),尽量让您用起来没有障碍感!

极致的简 & 丰富的全

JustAuth力求做到最简单、最易用、最全面。


您无需去第三方平台找寻繁杂而庞大的SDK文档,JustAuth提供了及其简单的接入方式,为您节省大量的开发时间,提高您的工作效率!

同时已支持了国内外数十家OAuth平台。


想做OAuth登录,JustAuth就够了!

功能

  • 集成国内外数十家第三方平台,实现快速接入。

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

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

  • 自定义 Http 实现,选择权完全交给开发者,不会单独依赖某一具体实现。

快速开始

引入依赖

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

latest-version 可选:

稳定版:快照版:注意:快照版本是功能的尝鲜,并不保证稳定性。请勿在生产环境中使用。

如何引入快照版本 如下任选一种 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 普通方式

// 创建授权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);

Builder 方式一 静态配置 AuthConfig

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

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


对于在项目中有需要集成第三方登录的同学可以在官网或 Github 地址了解。

写在最后(私活源码)

项目介绍

Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。

Jeepay使用Spring Boot和Ant Design Vue开发,集成Spring Security实现权限管理功能,是一套非常实用的web开发框架。

项目特点

· 支持多渠道对接,支付网关自动路由

· 已对接微信服务商和普通商户接口,支持V2和V3接口

· 已对接支付宝服务商和普通商户接口,支持RSA和RSA2签名

· 已对接云闪付服务商接口,可选择多家支付机构

· 提供http形式接口,提供各语言的sdk实现,方便对接

· 接口请求和响应数据采用签名机制,保证交易安全可靠

· 系统安全,支持分布式部署,高并发

· 管理端包括运营平台和商户系统

· 管理平台操作界面简洁、易用

· 支付平台到商户系统的订单通知使用MQ实现,保证了高可用,消息可达

· 支付渠道的接口参数配置界面自动化生成

· 使用spring security实现权限管理

· 前后端分离架构,方便二次开发

· 由原XxPay团队开发,有着多年支付系统开发经验

系统架构

Jeepay计全支付系统架构图

图片

核心技术栈

软件名称

描述

版本

Jdk

Java环境

1.8

Spring Boot

开发框架

2.4.5

Redis

分布式缓存

3.2.8 或 高版本

MySQL

数据库

5.7.X 或 8.0 高版本

MQ

消息中间件

ActiveMQ 或 RabbitMQ 或 RocketMQ

Ant Design Vue

Ant Design的Vue实现,前端开发使用

2.1.2

MyBatis-Plus

MyBatis增强工具

3.4.2

WxJava

微信开发Java SDK

4.1.0

Hutool

Java工具类库

5.6.6

开发部署

· 系统开发:https://docs.jeequan.com/docs/jeepay/dev_serv

· 通道对接:https://docs.jeequan.com/docs/jeepay/dev_channel

· 线上部署:https://docs.jeequan.com/docs/jeepay/deploy

· 接口文档:https://docs.jeequan.com/docs/jeepay/payment_api

功能模块

Jeepay运营平台功能

图片

Jeepay商户系统功能

图片

系统截图

以下截图是从实际已完成功能界面截取

图片

图片

图片

图片

图片

图片

图片

图片

开源地址

 扫码关注本号,后台回复 支付

扫码关注本号,后台回复 支付

持续关注本号,分享更多项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值