什么是 JustAuth?
JustAuth,如你所见,它仅仅是一个第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录 SDK,让登录变得So easy!
JustAuth 集成了诸如:Github、Gitee、支付宝、新浪微博、微信、Google、Facebook、Twitter、StackOverflow等国内外数十家第三方平台。更多请参考已集成的平台
有哪些特点?
- 全:已集成十多家第三方平台(国内外常用的基本都已包含),仍然还在持续扩展中(开发计划)!
- 简:API就是奔着最简单去设计的(见后面
快速开始
),尽量让您用起来没有障碍感!
有哪些功能?
- 集成国内外数十家第三方平台,实现快速接入。参考文档
- 自定义 State 缓存,支持各种分布式缓存组件。参考文档
- 自定义 OAuth 平台,更容易适配自有的 OAuth 服务。参考文档
- 自定义 Http 实现,选择权完全交给开发者,不会单独依赖某一具体实现。参考文档
- 自定义 Scope,支持更完善的授权体系。参考文档
- 更多...参考文档
参考文档:
https://gitee.com/yadong.zhang/JustAuth
https://gitee.com/yadong.zhang/JustAuth-demo/tree/master
快速开始
- 引入依赖
<dependency>
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>1.15.7</version>
</dependency>
微信支付示例:
@RestController
@RequestMapping("/oauth")
public class OauthController {
private static final String WebAppId= "微信AppId";
private static final String WebAppSecret = "微信AppSecret";
private static final String WebRedirectUri = "http://zlwj.jiajgou.com/wx/callback";
@RequestMapping("/login/{source}")
public void renderAuth(HttpServletResponse response, @PathVariable("source") String source) throws IOException {
AuthRequest authRequest = getAuthRequest(source);
String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());
response.sendRedirect(authorizeUrl);
}
/**
* 根据具体的授权来源,获取授权请求工具类
*
* @param source
* @return
*/
private AuthRequest getAuthRequest(String source) {
AuthRequest authRequest = null;
switch (source) {
case "wechat":
authRequest = new AuthWeChatOpenRequest(AuthConfig.builder()
.clientId(WebAppId)
.clientSecret(WebAppSecret)
.redirectUri(WebRedirectUri)
.build());
break;
default:
break;
}
if (null == authRequest) {
throw new AuthException("未获取到有效的Auth配置");
}
return authRequest;
}
}