前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这个第三方登录开源工具,支持市面上几乎所有主流平台!好用!

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

作者头像
程序猿DD
发布2023-04-04 13:43:23
4930
发布2023-04-04 13:43:23
举报
文章被收录于专栏:程序猿DD

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

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

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

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

JustAuth

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

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

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

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

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

而工具的初衷,就是简单。所以相关的API就是奔着最简单去设计的,尽量让用户用起来没有障碍感!

对于实现的功能的自我介绍,作者倒是没有花太多的华丽辞藻:

小编先带你看下如何快速开始使用:

引入依赖
代码语言:javascript
复制
<dependency>
    <groupId>me.zhyd.oauth</groupId>
    <artifactId>JustAuth</artifactId>
    <version>{latest-version}</version>
</dependency>
引入快照版本

(快照版本是功能的尝鲜,并不保证稳定性。建议不要在生产环境中使用。)

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

  • hutool-http
代码语言:javascript
复制
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-http</artifactId>
    <version>5.7.7</version>
</dependency>
  • httpclient
代码语言:javascript
复制
<dependency>
 <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient</artifactId>
   <version>4.5.13</version>
</dependency>
  • okhttp
代码语言:javascript
复制
<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>4.9.1</version>
</dependency>

调用api

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿DD 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引入依赖
  • 引入快照版本
  • 调用api
    • 普通方式
      • Builder 方式一 静态配置 AuthConfig
        • Builder 方式二 动态获取并配置 AuthConfig
          • Builder 方式支持自定义的平台
          相关产品与服务
          云开发 CloudBase
          云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档