Giter Club home page Giter Club logo

dustlight-cn / auth Goto Github PK

View Code? Open in Web Editor NEW
89.0 6.0 29.0 3.53 MB

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

Home Page: https://accounts.dustlight.cn/

License: Apache License 2.0

Java 55.23% JavaScript 27.26% Vue 17.15% HTML 0.10% Shell 0.13% SCSS 0.05% Dockerfile 0.08% Batchfile 0.01%
spring-boot oauth2 sso spring-security-oauth2 identity-management stateless vue quasar-framework authorization-server springsecurity

auth's Introduction

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

auth's People

Contributors

dependabot[bot] avatar gooddb avatar hansin1997 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

auth's Issues

申请登录账户

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

申请账号

我正在学习如何开发出整套的用户中心授权中心,希望能申请可以查看所有功能权限的账号学习,谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.