Skip to content

nsiod/user

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nsio user login system

本项目是基于 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

#

参考

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •