https://github.com/dustlight-cn/auth
OAuth2.0 授权服务,用户中心,开放平台,微服务鉴权。
https://github.com/dustlight-cn/auth
authorization-server identity-management oauth2 quasar-framework spring-boot spring-security-oauth2 springsecurity sso stateless vue
Last synced: 11 days ago
JSON representation
OAuth2.0 授权服务,用户中心,开放平台,微服务鉴权。
- Host: GitHub
- URL: https://github.com/dustlight-cn/auth
- Owner: dustlight-cn
- License: apache-2.0
- Created: 2020-05-15T08:36:53.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-11-10T03:06:55.000Z (4 months ago)
- Last Synced: 2025-12-31T00:36:55.790Z (about 2 months ago)
- Topics: authorization-server, identity-management, oauth2, quasar-framework, spring-boot, spring-security-oauth2, springsecurity, sso, stateless, vue
- Language: Java
- Homepage: https://accounts.dustlight.cn/
- Size: 2.83 MB
- Stars: 97
- Watchers: 4
- Forks: 32
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Auth
[](https://github.com/dustlight-cn/auth/actions/)
[](LICENSE)
[](https://github.com/dustlight-cn/auth/releases)
[](https://hub.docker.com/repository/docker/dustlightcn/auth-service)
[简介](#简介)
|
[快速开始](#快速开始)
|
[文档](docs)
|
[部署](docs/deploy)
|
[构建](docs/Build.md)
|
[鸣谢](#鸣谢)
## 简介
**Auth** 是一个前后端分离的 OAuth2.0 授权中心与用户中心,适用于 **微服务鉴权**、**单点登录**、**企业开放平台** 等场景。
**[👀 在线展示](#在线展示)**
|
**[🕵️♀️ 图片展示](#图片展示)**
### 功能包括
* 用户管理
* 应用管理
* 角色与权限管理
* OAuth2 授权模式与授权作用域管理 (GrantType & Scope)
* 应用授权与鉴权
### 特点
* 无状态的 **Restful** 服务
* 简洁、自适应、双语言的前端页面
* 快速部署微服务
### 支持的授权模式
* [X] 授权码模式 *authorization_code* (支持 OAuth 2.1 PKCE)
* [X] 客户端凭据模式 *client_credentials*
* [X] 隐式授权模式 *implicit*
* [X] 令牌刷新 *refresh_token*
* [ ] 密码模式 *password* (出于安全考虑默认不启用,如需启用可以自行创建。)
### OAuth 2.1 和 OpenID Connect
* [X] PKCE (Proof Key for Code Exchange) 支持
* [X] OpenID Connect Discovery (`.well-known/openid-configuration`)
* [X] UserInfo 端点 (`/userinfo`)
* [X] ID Token 支持(JWT 中包含 OIDC 标准声明)
* [X] 标准 OIDC 作用域(`openid`, `profile`, `email`, `phone`)
详细文档请参考:
* [OAuth 2.1 和 OpenID Connect 中文文档](docs/OAuth2.1-OIDC.md)
* [OAuth 2.1 and OpenID Connect English Documentation](docs/OAuth2.1-OIDC-EN.md)
## 快速开始
### HELM 部署
[HELM 部署文档](https://dustlight-cn.github.io/auth-helm)
### Kubernetes 一键部署服务
> 使用 ```kubectl``` 一键部署服务,集群中需要至少三个持久卷(```PersistentVolume```)用于 MySQL 数据库 与 Redis 以及上传文件的持久化。
```bash
kubectl apply -f https://raw.githubusercontent.com/dustlight-cn/auth/master/docs/deploy/k8s/deploy.yaml
```
其他部署方式请参考:[部署文档](docs/deploy)
构建、配置请参考 [文档](docs)。
## 展示
### 在线展示
[前往查看](https://accounts.dustlight.cn)
若您不想注册账号或者像想体验更高权限的功能,可以使用 [测试账号](#测试账号) 。
#### 测试账号
> 1. 出于功能展示的目的,测试账号拥有查看所有用户信息的权限。如果您打算进行注册账号,您的电子邮箱地址可能会被其他人看到。
> 2. 若以下测试账号均不可用,请 [创建 Issue](https://github.com/dustlight-cn/auth/issues/new) 联系我。
您可以使用下列的测试账号登录,它们拥有测试权限以及开发者权限。
| 用户名 | 密码 |
| --- | --- |
| test_user | 123456 |
| aaaaaa | 123456 |
| bbbbbb | 123456 |
#### OAuth2 授权页面与端点
| 功能(前端) | URL | 示例 |
| --- | --- | --- |
| 授权 | [/authorize](https://accounts.dustlight.cn/authorize) | [隐式授权示例 *(implicit)*](https://live.dustlight.cn/login?redirect_uri=%2Fhome) |
| 功能(后端) | URL | 方法 |
| --- | --- | --- |
| 颁发 OAuth 令牌 | [/v1/oauth/token](https://api.dustlight.cn/v1/oauth/token) | ```POST``` |
| 销毁令牌 | [/v1/token](https://api.dustlight.cn/v1/token) | ```DELETE``` |
| 检查令牌有效性 | [/v1/token/validity](https://api.dustlight.cn/v1/token/validity) | ```GET``` / ```POST``` |
| 颁发签名 JWT | [/v1/jws](https://api.dustlight.cn/v1/jws) | ```POST``` |
| 转换 JWT | [/v1/jws](https://api.dustlight.cn/v1/jws) | ```GET``` |
| 获取 JWT 公钥 (JWK) | [/v1/jwk](https://api.dustlight.cn/v1/jwk) | ```GET``` |
#### 接口浏览
| Open API | URL |
| --- | --- |
| JSON | [https://api.dustlight.cn/v1/api-doc](https://api.dustlight.cn/v1/api-doc) |
| YAML | [https://api.dustlight.cn/v1/api-doc.yaml](https://api.dustlight.cn/v1/api-doc.yaml) |
| Swagger UI | [https://api.dustlight.cn/v1/swagger-ui](https://api.dustlight.cn/v1/swagger-ui) |
### 图片展示
#### 应用授权

#### 用户详情

#### 应用详情

#### 系统设置

## 实现细节
### 后端
* 通过重写 **Spring Security OAuth2** 中的 Endpoint 实现前后端分离架构,使用 **Redis** 存储 Token、授权码、验证码等。
* 基于 **MySQL** & **MyBatis** 实现包括用户管理、应用管理、权限与角色管理等业务。
* 文件储存通过第三方服务实现(同时兼容本地储存),登录注册等接口通过谷歌 reCAPTCHA 人机识别进行验证。
* 使用 **Spring Doc** & **Swagger-UI** 生成 **OpenAPI** 文档和 API 调试页面。
### 前端
* 基于 **Vue** & **Quasar** 框架。
* 使用 **OpenAPI Generator** 生成 Typescript Axios SDK。
## 鸣谢
[](https://www.jetbrains.com/?from=Auth)