本项目是基于 Hydra 的用户登录系统。
Ory Hydra 作为授权服务器,提供 OpenID Connect (OIDC) 协议支持。 Hydra:作为授权服务器,处理 OAuth2 和 OpenID Connect 协议。
Web 部分作为用户登录前段和Hydra UI管理。
Web系统分为三个部分,这三部分并不互相依赖,但需要协同工作,此系统为了方便开发和部署,使用了单体应用的方式。
-
/client:作为Oauth client,多数时间作为独立的第三方应用,类似使用google登录,使用github登录的第三方应用角色, 此系统可以用任何第三方支持的Oauthlogin的应用来代替,例如gitea。
-
/account:提供用户验证系统,并连接hydra实现用户登录,是此系统的核心必须实现部分。
-
/admin:作为Hydra的管理系统,提供OAuth客户端的创建、更新、删除和列表功能,并不对普通用户公开,多数时候作为一个 管理员工具使用。
-
/client 作为建议的oauth 客户端实现,主要实现如何API:
- /client/userinfo
- /client/login
- /client/logout
- /client/session
-
/account 作为用户验证系统,主要实现如下API:
- consent: /account/consent
- login: /account/login
- logout: /account/logout
- registration: /account/registration
- error: /account/error
- post_logout_redirect: /account/logout/success
- device:
- verification: /account/device/verify
- success: /account/device/success
-
/admin 作为Hydra的管理系统,主要实现如下API:
-
oauth: /admin/oauth
-
oauthCreate: /admin/oauth/create
-
oauthUpdate: /admin/oauth/update
-
oauthDelete: /admin/oauth/delete
-
oauthList: /admin/oauth
-
git clone https://github.com/nsiod/user
cd user
mkdir -p data
# hydra 启动
## 生成并修改hydra.yaml中的域名配置配置
cp -a examples/hydra.yml data/hydra.yaml
## 初始化数据库
aa init
## 启动服务
aa run
#