JustAuth
更新内容
JustAuth
今天更新了两个版本,v1.9.3
算是一个过渡版本,不过仍然存在一些问题,建议直接升级到v1.9.4
。
v1.9.3
AuthConfig
类中去掉state参数- 删除
AuthState
类 - 增加
authorize(String)
方法,并且使用@Deprecated
标记authorize()
方法 IpUtils.getIp
改名为IpUtils.getLocalIp
- 规范注释
- 增加State缓存,
AuthCallback
中增加默认的校验state的方法 - 增加默认的state生成方法,参考
AuthStateUtils.java
和UuidUtils.java
- 升级
hutool-http
版本到v4.6.0
- 修复其他一些问题
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分钟内的请求信息,如果一次授权的流程,从authorize
到callback
(login
)之间,超过3分钟,则默认当前授权流程无效。
在升级hutool
到v4.6.0
版本时,遇到了一些问题:在码云上生成JavaDoc时报错,经过和hutool
作者沟通,他建议将hutool
升级到最新版本v4.6.1
。
v1.9.4
- 升级
hutool-http
版本到v4.6.1
- 去除
AuthCallback
中增加的默认的校验state的方法,挪到AuthDefaultRequest
中做统一处理 alipay-sdk-java
依赖改为provided
,如果需要使用支付宝登录,需要使用方手动引入相关依赖,具体操作方式,见项目WIKI;- 规范注释
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!
JustAuth的特点
废话不多说,就俩字:
- 全:已集成十多家第三方平台(国内外常用的基本都已包含),后续依然还有扩展计划!
- 简: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可以很方便的帮助开发人员过滤、识别恶意请求