手记

JustAuth新版发布,建议升级到最新版【v1.9.4】

JustAuth更新内容

JustAuth今天更新了两个版本,v1.9.3算是一个过渡版本,不过仍然存在一些问题,建议直接升级到v1.9.4

v1.9.3

  1. AuthConfig类中去掉state参数
  2. 删除AuthState
  3. 增加authorize(String)方法,并且使用@Deprecated标记authorize()方法
  4. IpUtils.getIp改名为IpUtils.getLocalIp
  5. 规范注释
  6. 增加State缓存,AuthCallback中增加默认的校验state的方法
  7. 增加默认的state生成方法,参考AuthStateUtils.javaUuidUtils.java
  8. 升级hutool-http版本到v4.6.0
  9. 修复其他一些问题

v1.9.3版本前的AuthState类有个问题就是:A授权过程中,B也去授权相同的平台,因为AuthState内部获取ip时获取的是本机ip,所以最终A和B在AuthState中生成的key就会一样,也因此造成A的数据被B覆盖掉的情况。

1.9.3版本中,将AuthState类删除,同时去掉了AuthConfig类中的state参数。因为对于OAuth来说,state主要的作用就是为了保持会话的完整性,防止CSRF攻击,所以这个参数在JustAuth中实际应该是跟着request走,而不应该耦合到config中。同时在该版本中,新增了authorize(String)方法,支持调用者手动去生成state,当然, 原来的authorize()方法一样可以用,但不保证后续版本不会被删除,所以还是建议大家使用authorize(String)方法获取授权地址。

该版本还增加了state缓存,不过需要注意的一点就是:JustAuth默认保存state的有效期为3分钟,3分钟内未使用则会自动清除掉。针对这一点,在代码中也给出了注释:

/**
 * 默认的缓存实现
 *
 * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
 * @since 1.9.3
 */
public class AuthDefaultCache implements AuthCache {

    /**
     * 默认缓存过期时间:3分钟
     * 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,不过单个授权流程一般不会太长
     * 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除
     */
    private static final long DEF_TIMEOUT = 3 * 60 * 1000;
	
	// ...
}

这个意思就是,JustAuth默认只能受理3分钟内的请求信息,如果一次授权的流程,从authorizecallbacklogin)之间,超过3分钟,则默认当前授权流程无效。

在升级hutoolv4.6.0版本时,遇到了一些问题:在码云上生成JavaDoc时报错,经过和hutool作者沟通,他建议将hutool升级到最新版本v4.6.1

v1.9.4

  1. 升级hutool-http版本到v4.6.1
  2. 去除AuthCallback中增加的默认的校验state的方法,挪到AuthDefaultRequest中做统一处理
  3. alipay-sdk-java依赖改为provided,如果需要使用支付宝登录,需要使用方手动引入相关依赖,具体操作方式,见项目WIKI;
  4. 规范注释

v1.9.4版本主要就是修改了一下依赖,其中比较大的改动就是将alipay-sdk-java依赖置为了provided,毕竟在以前的版本中这算是一个传递性的第三方强依赖,但并不是每个人都需要用到Alipay的授权登陆,所以在1.9.4版本中,将这一依赖置为provided。如果你需要用到Alipay的授权登陆,那么你还需要添加以下依赖:

<!-- JustAuth1.9.4版本后,如果需要使用支付宝登录,需要单独引用该依赖 -->
<dependency>
	<groupId>com.alipay.sdk</groupId>
	<artifactId>alipay-sdk-java</artifactId>
	<version>3.7.4.ALL</version>
</dependency>

关于JustAuth

JustAuth,史上最全的整合第三方登录的开源库。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest和人人等第三方平台的授权登录。 Login, so easy!

JustAuth,如你所见,它仅仅是一个第三方授权登录工具类库,它可以让我们脱离繁琐的第三方登录SDK,让登录变得So easy!

项目开源地址:gitee | github

JustAuth的特点

废话不多说,就俩字:

  1. :已集成十多家第三方平台(国内外常用的基本都已包含),后续依然还有扩展计划!
  2. :API就是奔着最简单去设计的(见后面快速开始),尽量让您用起来没有障碍感!

其他开源作品

  • blog-hunter,一款简单好用并且支持多个平台的博客爬取工具
  • OneBlog,一个简洁美观、功能强大并且自适应的Java博客
  • JustAuth,史上最全的整合第三方登录的开源库。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest和人人等第三方平台的授权登录。 Login, so easy!
  • spingboot-shiro,Springboot + shiro权限管理。这或许是流程最详细、代码最干净、配置最简单的shiro上手项目了。
  • braum-spring-boot-starter,Braum可以很方便的帮助开发人员过滤、识别恶意请求
0人推荐
随时随地看视频
慕课网APP