Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Sa Token | 12,541 | 4 | a day ago | 33 | September 08, 2022 | 16 | apache-2.0 | Java | ||
这可能是史上功能最全的Java权限认证框架!目前已集成——登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0、踢人下线、Redis集成、前后台分离、记住我模式、模拟他人账号、临时身份切换、账号封禁、多账号认证体系、注解式鉴权、路由拦截式鉴权、花式token生成、自动续签、同端互斥登录、会话治理、密码加密、jwt集成、Spring集成、WebFlux集成... | ||||||||||
Google Api Nodejs Client | 10,633 | 8,219 | 1,712 | 9 days ago | 218 | September 21, 2022 | 157 | apache-2.0 | TypeScript | |
Google's officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included. | ||||||||||
Satellizer | 8,017 | 284 | 6 | 4 years ago | 56 | August 30, 2016 | 287 | mit | TypeScript | |
Token-based AngularJS Authentication | ||||||||||
Oauth2orize | 3,307 | 2,413 | 151 | a year ago | 21 | November 18, 2021 | 78 | mit | JavaScript | |
OAuth 2.0 authorization server toolkit for Node.js. | ||||||||||
Fosite | 2,061 | 50 | 64 | a month ago | 278 | April 17, 2022 | 31 | apache-2.0 | Go | |
Extensible security first OAuth 2.0 and OpenID Connect SDK for Go. | ||||||||||
React Native App Auth | 1,717 | 15 | 3 | 15 days ago | 46 | February 14, 2022 | 127 | mit | Java | |
React native bridge for AppAuth - an SDK for communicating with OAuth2 providers | ||||||||||
Google Auth Library Nodejs | 1,513 | 11,661 | 667 | 2 days ago | 118 | July 13, 2022 | 55 | apache-2.0 | TypeScript | |
🔑 Google Auth Library for Node.js | ||||||||||
Node Openid Client | 1,509 | 275 | 209 | 11 days ago | 160 | July 04, 2022 | 1 | mit | JavaScript | |
OpenID Certified™ Relying Party (OpenID Connect/OAuth 2.0 Client) implementation for Node.js. | ||||||||||
Oauth2 Demo | 1,094 | a year ago | 24 | Java | ||||||
Re:从零开始的Spring Security Oauth2 | ||||||||||
Spring Boot Jwt | 1,022 | a year ago | mit | Java | ||||||
JWT auth service using Spring Boot, Spring Security and MySQL |
注:学习测试请拉取 master 分支,dev 为正在开发的分支,有很多特性并不稳定。
开源不易,点个 star 鼓励一下吧!
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。
Sa-Token 旨在以简单、优雅的方式完成系统的权限认证部分,以登录认证为例,你只需要:
// 会话登录,参数填登录人的账号id
StpUtil.login(10001);
无需实现任何接口,无需创建任何配置文件,只需要这一句静态代码的调用,便可以完成会话登录认证。
如果一个接口需要登录后才能访问,我们只需调用以下代码:
// 校验当前客户端是否已经登录,如果未登录则抛出 `NotLoginException` 异常
StpUtil.checkLogin();
在 Sa-Token 中,大多数功能都可以一行代码解决:
踢人下线:
// 将账号id为 10077 的会话踢下线
StpUtil.kickout(10077);
权限认证:
// 注解鉴权:只有具备 `user:add` 权限的会话才可以进入方法
@SaCheckPermission("user:add")
public String insert(SysUser user) {
// ...
return "用户增加";
}
路由拦截鉴权:
// 根据路由划分模块,不同模块不同鉴权
registry.addInterceptor(new SaInterceptor(handler -> {
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
SaRouter.match("/notice/**", r -> StpUtil.checkPermission("notice"));
// 更多模块...
})).addPathPatterns("/**");
当你受够 Shiro、SpringSecurity 等框架的三拜九叩之后,你就会明白,相对于这些传统老牌框架,Sa-Token 的 API 设计是多么的简单、优雅!
Sa-Token 目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。
功能结构图:
Sa-Token-SSO 由简入难划分为三种模式,解决不同架构下的 SSO 接入问题:
系统架构 | 采用模式 | 简介 | 文档链接 |
---|---|---|---|
前端同域 + 后端同 Redis | 模式一 | 共享Cookie同步会话 | 文档、示例 |
前端不同域 + 后端同 Redis | 模式二 | URL重定向传播会话 | 文档、示例 |
前端不同域 + 后端 不同Redis | 模式三 | Http请求获取会话 | 文档、示例 |
c1.domain.com
、c2.domain.com
、c3.domain.com
[权限缓存与业务缓存分离]
的解决方案,详情戳:Alone独立Redis插件
Sa-OAuth2 模块分为四种授权模式,解决不同场景下的授权需求
授权模式 | 简介 |
---|---|
授权码(Authorization Code) | OAuth2.0 标准授权步骤,Server 端向 Client 端下放 Code 码,Client 端再用 Code 码换取授权 Token |
隐藏式(Implicit) | 无法使用授权码模式时的备用选择,Server 端使用 URL 重定向方式直接将 Token 下放到 Client 端页面 |
密码式(Password) | Client直接拿着用户的账号密码换取授权 Token |
客户端凭证(Client Credentials) | Server 端针对 Client 级别的 Token,代表应用自身的资源授权 |
详细参考文档:https://sa-token.cc/doc.html#/oauth2/readme
[ Sa-Plus ]:一个基于 SpringBoot 架构的快速开发框架,内置代码生成器。
[ Snowy ]:国内首个国密前后分离快速开发平台,采用 Vue3 + AntDesignVue3 + Vite + SpringBoot + Mp + HuTool + SaToken。
[ RuoYi-Vue-Plus ]:重写RuoYi-Vue所有功能 集成 Sa-Token+Mybatis-Plus+Jackson+Xxl-Job+knife4j+Hutool+OSS 定期同步
[ RuoYi-Cloud-Plus ]:重写RuoYi-Cloud所有功能 整合 SpringCloudAlibaba Dubbo3.0 Sa-Token Mybatis-Plus MQ OSS ES Xxl-Job Docker 全方位升级 定期同步
[ EasyAdmin ]:一个基于SpringBoot2 + Sa-Token + Mybatis-Plus + Snakerflow + Layui 的后台管理系统,灵活多变可前后端分离,也可单体,内置代码生成器、权限管理、工作流引擎等
[ YC-Framework ]:致力于打造一款优秀的分布式微服务解决方案。
[ Pig-Satoken ]:重写 Pig 授权方式为 Sa-Token,其他代码不变。
更多开源案例可参考:Awesome-Sa-Token
[ OkHttps ]:轻量级 http 通信框架,API无比优雅,支持 WebSocket、Stomp 协议
[ Bean Searcher ]:专注高级查询的只读 ORM,使一行代码实现复杂列表检索!
[ Snowy ]:小诺快速开发平台,同时拥有 Layui、Vue、SpringCloud 三个版本。
[ Jpom ]:简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
[ TLog ]:一个轻量级的分布式日志标记追踪神器。
[ hippo4j ]:强大的动态线程池框架,附带监控报警功能。
QQ交流群:707350988 点击加入
微信交流群:
(扫码添加微信,备注:sa-token,邀您加入群聊)
加入群聊的好处: