Skip to content

OAuth2.0 授权服务,用户中心,开放平台,微服务鉴权。

License

Notifications You must be signed in to change notification settings

dustlight-cn/auth

Repository files navigation

auth-logo

Auth

Docker Build Status License GitHub release (latest by date including pre-releases) Docker Image Version (latest semver)

简介 | 快速开始 | 文档 | 部署 | 构建 | 鸣谢

简介

Auth 是一个前后端分离的 OAuth2.0 授权中心与用户中心,适用于 微服务鉴权单点登录企业开放平台 等场景。

👀 在线展示 | 🕵️‍♀️ 图片展示

功能包括

  • 用户管理
  • 应用管理
  • 角色与权限管理
  • OAuth2 授权模式与授权作用域管理 (GrantType & Scope)
  • 应用授权与鉴权

特点

  • 无状态的 Restful 服务
  • 简洁、自适应、双语言的前端页面
  • 快速部署微服务

支持的授权模式

  • 授权码模式 authorization_code
  • 客户端凭据模式 client_credentials
  • 隐式授权模式 implicit
  • 令牌刷新 refresh_token
  • 密码模式 password (出于安全考虑默认不启用,如需启用可以自行创建。)

快速开始

HELM 部署

HELM 部署文档

Kubernetes 一键部署服务

使用 kubectl 一键部署服务,集群中需要至少三个持久卷(PersistentVolume)用于 MySQL 数据库 与 Redis 以及上传文件的持久化。

kubectl apply -f https://raw.githubusercontent.com/dustlight-cn/auth/master/docs/deploy/k8s/deploy.yaml

其他部署方式请参考:部署文档

构建、配置请参考 文档

展示

在线展示

前往查看

若您不想注册账号或者像想体验更高权限的功能,可以使用 测试账号

测试账号

  1. 出于功能展示的目的,测试账号拥有查看所有用户信息的权限。如果您打算进行注册账号,您的电子邮箱地址可能会被其他人看到。
  2. 若以下测试账号均不可用,请 创建 Issue 联系我。

您可以使用下列的测试账号登录,它们拥有测试权限以及开发者权限。

用户名 密码
test_user 123456
aaaaaa 123456
bbbbbb 123456

OAuth2 授权页面与端点

功能(前端) URL 示例
授权 /authorize 隐式授权示例 (implicit)
功能(后端) URL 方法
颁发 OAuth 令牌 /v1/oauth/token POST
销毁令牌 /v1/token DELETE
检查令牌有效性 /v1/token/validity GET / POST
颁发签名 JWT /v1/jws POST
转换 JWT /v1/jws GET
获取 JWT 公钥 (JWK) /v1/jwk GET

接口浏览

Open API URL
JSON 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

图片展示

应用授权

authorize

用户详情

user_details

应用详情

client_details

系统设置

settings

实现细节

后端

  • 通过重写 Spring Security OAuth2 中的 Endpoint 实现前后端分离架构,使用 Redis 存储 Token、授权码、验证码等。
  • 基于 MySQL & MyBatis 实现包括用户管理、应用管理、权限与角色管理等业务。
  • 文件储存通过第三方服务实现(同时兼容本地储存),登录注册等接口通过谷歌 reCAPTCHA 人机识别进行验证。
  • 使用 Spring Doc & Swagger-UI 生成 OpenAPI 文档和 API 调试页面。

前端

  • 基于 Vue & Quasar 框架。
  • 使用 OpenAPI Generator 生成 Typescript Axios SDK。

鸣谢

JetBrains