嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法
JustAuth 是一个 小而全而美 的第三方登录开源组件,目前已支持 Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack 和 Line 等第三方平台的授权登录。正如它的口号所说:“Login, so easy!”
功能特点
-
全: 支持国内外多家第三方平台登录
-
简: 集成简单,提供丰富的 Demo 示例
-
美: 代码结构清晰,易于拓展
应用场景
JustAuth因其轻量级和易用性,被广泛应用于各种需要第三方登录的场景中。无论是个人博客、企业网站还是移动应用,JustAuth都能提供稳定可靠的登录服务。
快速集成第三方登录
对于开发者来说,集成第三方登录一直是一个头疼的问题。JustAuth 提供了一套统一的接口,让开发者可以快速集成各种第三方登录。
多平台账号统一管理
JustAuth 支持多家第三方平台,可以帮助用户实现多平台账号的统一管理。
个人博客
对于个人博客来说,集成JustAuth可以让用户通过他们常用的社交媒体账号快速登录,提高了用户体验。
企业网站
企业网站通过JustAuth集成第三方登录,可以简化用户注册和登录流程,降低用户流失率。
移动应用
在移动应用中,JustAuth可以为用户提供更多的登录选择,使用户可以快速登录并开始使用应用。
社交登录
为网站或应用提供社交登录功能,提高用户体验。
单点登录(SSO)
实现多个系统之间的单点登录,简化用户登录过程。
使用方法
-
引入依赖
<dependency> <groupId>me.zhyd.oauth</groupId> <artifactId>JustAuth</artifactId> <version>最新版本</version> </dependency>
-
配置第三方平台参数
以 GitHub 为例,您需要配置以下参数:
github.client.id=你的client_id github.client.secret=你的client_secret github.redirect.uri=你的回调地址
-
编写代码
@Autowired private OAuthService oauthService; public void login(String type) { OAuthRequest request = new OAuthRequest(type); // 设置其他参数,如 state 等 request.setState("state"); // 获取授权链接 String authorizeUrl = oauthService.getAuthorizeUrl(request); // 重定向到授权链接 response.sendRedirect(authorizeUrl); }
-
处理回调
@GetMapping("/callback") public void callback(String code, String state) { OAuthRequest request = new OAuthRequest("github"); request.setCode(code); request.setState(state); // 获取 Access Token OAuthResponse response = oauthService.getAccessToken(request); // 根据 Access Token 获取用户信息 UserInfo userInfo = oauthService.getUserInfo(response); // 业务处理 }
示例
以下是一个使用 JustAuth 集成 GitHub 登录的完整示例:
@RestController
public class OAuthController {
@Autowired
private OAuthService oauthService;
@GetMapping("/login")
public void login() {
OAuthRequest request = new OAuthRequest("github");
// 设置回调地址
request.setRedirectUri("http://yourdomain.com/callback");
// 设置 state
request.setState("state");
// 获取授权链接
String authorizeUrl = oauthService.getAuthorizeUrl(request);
// 重定向到授权链接
response.sendRedirect(authorizeUrl);
}
@GetMapping("/callback")
public void callback(String code, String state) {
OAuthRequest request = new OAuthRequest("github");
request.setCode(code);
request.setState(state);
// 获取 Access Token
OAuthResponse response = oauthService.getAccessToken(request);
// 根据 Access Token 获取用户信息
UserInfo userInfo = oauthService.getUserInfo(response);
// 业务处理
}
}
接口截图
同类项目对比
-
SocialAuth: SocialAuth 是一个支持多种社交网络认证的 Java 库。与 JustAuth 相比,它的集成较为复杂,但支持的社交平台更多。
-
Spring Social: Spring Social 是 Spring 提供的一个社交网络集成框架。它主要针对 Spring 应用,与 JustAuth 相比,它的配置更为繁琐。
总结
JustAuth 作为一个简单、易用、美观的第三方登录组件,大大简化了开发者的集成工作。如果您正在寻找一个快速集成第三方登录的解决方案,那么 JustAuth 无疑是一个不错的选择。