GithubHelp home page GithubHelp logo

yepengding / boostauth Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 429 KB

Authentication system for Boost Plan. Reusable as an authentication service for web systems.

License: MIT License

Java 64.39% Dockerfile 0.03% HTML 8.35% JavaScript 16.64% CSS 0.14% PHP 9.22% Python 1.23%
authentication jwt scaffold service web-framework

boostauth's Introduction

BoostAuth

Authentication system for Boost Plan. The Boost Plan is a scaffold for building usable web applications in no time.

BoostAuth provides a unified authentication and authorization service for all other systems provided in the Boost Plan. It supports multiple authentication methods with a built-in administration system.

Features

  • Token-based authentication and authorization
  • Basic access authentication (RFC 7617)
  • Fully-fledged access control
  • Management system with frontend
  • Delegation support
  • Email service
  • Admin management
  • Group management
  • Role-based access control
  • Docker-based deployment
  • Clients in multiple languages (e.g., Python, JavaScript, PHP)
  • Integration with third-party services (e.g., Next Cloud)

Setup

Environment

  • Java 11
  • Maven 3.6+

Configuration

src/main/resources/application[-dev/-local/-prod].yml

Start with Docker

docker-compose up

Start with Maven

mvn clean package -D maven.test.skip=true -P [local/dev/prod]

Common Issues

  • Cannot connect to DB: wait until DB is fully initialized and restart web service

API Document

domain:9000/swagger-ui.html

Registration Workflow

Frontend

  1. User: access /view/preregister to preregister
  2. Admin: access /admin/view/manage/preregister to approve the preregistration
  3. Optionally, User: access an endpoint to officially register with a unique code issued by Admin

API

  1. User: call /token/auth/preregister to preregister
  2. Admin: call /admin/identity/approve/{id} to approve the preregistration
  3. Optionally, User: access an endpoint to officially register with a unique code issued by Admin

Basic Access Authentication

  • Authentication endpoint: GET /basic/login
  • Header: Authorization: Basic <username>:<source>:<password>

Token-Based authentication

  1. /token/auth/preregister Generate Identity with UUID and Token
  2. /token/auth/register Make Identity valid
  3. /token/auth/login Sign in
  4. /token/verify Verify a token
  5. /token/auth/logout Sign out
  6. /token/auth/reset/password Reset password

Frontend

User

  • Preregistration: /view/preregister Preregistration

Admin

  • Manage preregistration: /admin/view/manage/preregister Preregistration Admin

  • Manage group: /admin/view/manage/group Group Admin


References

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.