JustAuth
更新内容JustAuth
今天更新了两个版本, v1.9.3
算是一个过渡版本,不过仍然存在一些问题,建议直接升级到 v1.9.4
。
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
。
升级 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,史上最全的整合第三方登录的开源库。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest和人人等第三方平台的授权登录。Login, so easy!
JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录SDK,让登录变得So easy!
项目开源地址:
https://gitee.com/yadong.zhang/JustAuth
https://github.com/zhangyd-c/JustAuth
废话不多说,就俩字:
全:已集成十多家第三方平台(国内外常用的基本都已包含),后续依然还有扩展计划!
简:API就是奔着最简单去设计的(见后面 快速开始
),尽量让您用起来没有障碍感!
blog-hunterhttp://t.cn/AiO7mKcA[],一款简单好用并且支持多个平台的博客爬取工具
OneBlog[http://t.cn/EZs70yD],一个简洁美观、功能强大并且自适应的Java博客
JustAuth[http://t.cn/AipwC6GR],史上最全的整合第三方登录的开源库。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest和人人等第三方平台的授权登录。Login, so easy!
spingboot-shiro[http://t.cn/AilOAcUm],Springboot + shiro权限管理。这或许是流程最详细、代码最干净、配置最简单的shiro上手项目了。
braum-spring-boot-starter[http://t.cn/AilOAJyc],Braum可以很方便的帮助开发人员过滤、识别恶意请求
JustAuth交流群 (230017570):专业交流JustAuth
开源总群 (190886500):上面提到的开源项目都有,也有博客建设等方面的朋友。(注意,该群需付费进入,防止发垃圾广告、垃圾推广等人士,入群请慎重考虑!)
关注我的公众号,了解更多咨询!
微信扫一扫
关注该公众号