随着微信、支付宝等航母级应用在众人身边的普及,越来越多的应用、网站在登陆的时候除了提供注册用户外,还直接提供第三方登录的方式,也就是直接关联微信、支付宝这类应用,用已有的账号和密码来快速完成当前应用或网站的登录注册。

第三方登录的好处对于应用来说,在于降低用户注册的成本,毕竟有时候只要点一下就可以登陆和需要填写各种信息注册的两种选择下,往往就是使用和放弃的区别。

对于用户来说,通过第三方登录,直接获取用户头像昵称等基本个人信息,无需用户自行设置;共享账号已有的用户关系,用户进入产品中就能找到熟悉的人,发现同样使用该应用也用同样第三方方式登录的好友,会有惊喜感;另外用户在使用多个应用时,只需使用第三方登录即可,无需记得每个平台的账户和密码。便捷程度上的确是未来发展的大趋势。

今天呢,小编给大家分享的就是一款超级全面的第三方登录开源工具。

JustAuth

JustAuth曾经被评为Gitee 最有价值开源项目,是一款小而全而美的第三方登录开源组件。

截止目前为止,JustAuth已集成支持如:

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

也就是说,作为一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得十分简单。

除了上述的这些平台,开发计划仍然还在持续扩展中,作者表示不会停下自己的脚步。

而工具的初衷,就是简单。所以相关的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

普通方式

// 创建授权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分钟内未使用则会自动清除过期的stateauthRequest.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();

想进一步深入探讨该工具,实现各平台第三方登录功能的,可以关注小编回复关键字获取项目地址,一起来做第三方登录吧:

点击下方卡片,关注公众号“TJ君

回复“第三方”,获取仓库地址

这个第三方登录开源工具,支持市面上几乎所有主流平台!好用!相关推荐

  1. 大数据领域的12大工具,市面上主要的大数据分析工具都在这了!

    大数据工具让企业能够从数据仓库获得洞察力,从而在数据驱动的业务环境中提供重要的竞争优势. 为了满足旺盛需求,大数据工具在迅速遍地开花.在大数据这一概念和业务战略出现以来的十年间,市面上出现了成千上万执 ...

  2. 这个工具秒杀市面上各种可视化,可惜90%的人都没用过!

    如果大家日常工作中经常要和数据打交道,做Excel,做报表,看数据. 那么不妨建议大家涉猎一下数据分析. 如今它已不是商业分析师.数据科学家的专属. 随着百花齐放的学习课程和分析工具的出现,它的入门难 ...

  3. 【ESXI】VMware ESXi 8.0b 21203435网卡驱动集成版,支持市面上主流网卡驱动!

    该版本为ESXI官方发布8.0b版本封装版,在该版本之上封装了网卡驱动. 作者网站:www.diy-nas.cn 欢迎各位NAS or HOME SERVER 用户光临小站! 前言 VMware-ES ...

  4. fstransform开源工具支持Linux下无损转换文件系统

    简介 当我们想要改变Linux操作系统下已有分区的文件系统类型时,除了备份数据.重新格式化.恢复数据外,似乎别无它法.但fstransform的出现则给了我们一个选择.fstransform 允许操作 ...

  5. 目前市面上量化交易软件、平台、框架的特点, 重点推荐VNPY底层仿真回测系统

    随着这几年量化交易在国内的快速发展,各种API接口.量化平台.量化交易框架匆匆推出,呈现出一片百花齐放,欣欣向荣的景象,但是由于目前国内还处于私募基金发展的初期,大部分平台也都匆匆上马,既有自己的特点 ...

  6. 市面上几种主流的机器人接口API汇总需要用的来拿。

    道翰天琼认知智能未来机器人接口API简介介绍 QQ机器人是腾讯陆续推出的的人工智能聊天机器人的总称. 都说小Q妹妹聪明好学,我们能够教她说话.也能够请他帮忙查询邮编.手机号,或者解释成语.翻译成语,据 ...

  7. 【安利】给大家推荐一款超好用的第三方登录的开源插件

    [外链图片转存失败(img-1HBx07HI-1563201751232)(https://oscimg.oschina.net/oscnet/5663987fdc58f9167c9fbedd1ad2 ...

  8. Mob第三方登录快速集成开发

    转自 http://blog.csdn.net/qq_32120667/article/details/74286619 写的非常清晰,很不错 现在国内大部分APP应用都集成了第三方登录和社会化分享, ...

  9. Spring Boot开发之使用JustAuth组件实现第三方登录(QQ、微博等)

    在我们的项目开发中,使用第三方登录(如QQ登录.微信登录等)可以更加方便.轻松地实现用户登录. 在以往的开发过程中,如果要使项目实现第三方登录功能,一般过程是阅读官网的开发文档,并下载其JDK(或者依 ...

最新文章

  1. 福利,PyTorch中文版官方教程来啦(附下载)
  2. html的div的儿子,当父母的身高是动态时,孩子div为100% HTML / CSS
  3. java try catch_Java中关于try、catch、finally中的细节分析
  4. Java中通过NetworkInterface获取主机地址和物理地址等
  5. Spring MVC 数据回显
  6. 重启docker容器命令
  7. rtl驱动 ubuntu 禁用_【Ubuntu】UEFI安装Windows 10和Ubuntu 18.04双系统(深度爬坑)
  8. 新代系统PLC编程软件 新代PLC编程软件中文版梯形图
  9. sql2019更改了表的部分字段设计出现不允许保存更改解决方案
  10. stm32F407 + FreeRTOS + FAT 文件系统移植
  11. AE在输出.H264格式的MP4时候 出现-1610153453 ae error
  12. mysql全文检索 中文_mysql全文索引不支持中文的解决方案
  13. 腾讯云与本地主机socket通信网络问题
  14. gmail附件调用_如何将Gmail附件保存到Google云端硬盘
  15. Warning: [antdv: LocaleProvider] `LocaleProvider` is deprecated. Please use `local
  16. Windows10 Hyper-v 虚拟机安装点心云,实现闲置宽带共享。
  17. (《机器学习》完整版系列)附录 ——7、有趣的距离与范数(距离是两点之间的,如果将一个点固定在原点,则为向量的范数)
  18. python 语言与numpy库
  19. Linux Web基础与HTTP协议
  20. python异步socket接收_Python简易聊天工具-基于异步Socket通信

热门文章

  1. php arraymap()函数
  2. redis info memory
  3. shell中的map使用
  4. linux c gcc编译报错 can not be used when making a shared object; recompile with -fPIC
  5. ucl 数据压缩开源库 简介
  6. php 一句话木马简介
  7. linux chroot 命令 设置根目录路径
  8. python3 f-strings格式字符串
  9. metasploit 中 exploit模块check方法简介
  10. tcp socket 异常关闭总结