This commit is contained in:
Lakhan Samani 2021-07-21 17:53:34 +05:30
commit b749dedea6
2 changed files with 40 additions and 33 deletions

View File

@ -1,10 +1,8 @@
# yauth
An open source authentication and authorization system.
yauth (aka your-auth) is a complete open source authentication and authorization solution for your applications. Bring your database and have complete control over the authentication, authorization and user data. It is a microservice that can be deployed anywhere and connected any sql database.
## Overview
yauth (aka your-auth) is a complete open source authentication and authorization solution for your applications. Bring your database and have complete control over the authentication and user data. This an [Auth0](https://auth0.com) alternative with complete data control.
This an [Auth0](https://auth0.com) opensource alternative.
## Features
### Flexible and easy to use

View File

@ -4,43 +4,52 @@ This document contains detailed information about the project scope and future r
## V 0.1.0 [To be released by 20-August-2021]
- [ ] Create boilerplate for server
- [ ] Use golang as server side language
- [ ] Use [gorm](https://github.com/go-gorm/gorm) as ORM
- [ ] Define base schema for user
- [ ] Define the auth schemes and variables required for that
- [ ] Basic Auth (Username & Password based)
- [ ] Google Login
- [ ] Github Login
- [x] Create server
- [x] Use golang as server side language
- [x] Use [gorm](https://github.com/go-gorm/gorm) as ORM
- [x] Configure https://github.com/99designs/gqlgen for generating graphql schemas
- [x] Configure https://github.com/gin-gonic/gin for creating http server
- [x] Define base schema for user
- [x] Define the auth schemes and variables required for that
- [x] Basic Auth (Username & Password based)
- [x] Google Login
- [x] Github Login
- [ ] Twitter Login
- [ ] Facebook Login
- [ ] Login with magic link (Send magic link mail)
- [ ] Add [mailing server](https://github.com/emersion/go-smtp) to send the magic link
- [ ] Allow configuring the master password to access the console (If not set UI console can be accessed by anyone)
- [ ] Allow configuring mailing server
- [ ] Allow configuring RSA/HSA Keys for oauth
- [ ] Allow configuring the DB client
- [ ] Allow configuring the Secret
- [ ] Allow configuring callback urls
- [ ] Allow configuring redis, should be optional if not used use the memory to store session
- [ ] Use [fiber sessions](https://docs.gofiber.io/api/middleware/session) for session management
- [ ] Create REST API
- [ ] Login
- [ ] Logout
- [ ] Authorize [Currently checks for valid token & if token is present in session]
- [ ] Should authorize using cookies
- [ ] Should authorize using Authorization header
- [x] Add [mailing server](https://github.com/emersion/go-smtp) to send the magic link
- [x] Allow configuring the master password to access the console (If not set UI console can be accessed by anyone)
- [x] Allow configuring mailing server
- [x] Allow configuring HSA Keys for oauth
- [ ] Allow configuring RSA keys for oauth
- [x] Allow configuring the DB client
- [x] Allow configuring the Secret
- [x] Allow configuring callback urls
- [x] Allow configuring redis, should be optional if not used use the memory to store session
- [x] Create Graphql mutations and query for following
- [x] Login mutation
- [x] Logout muttion
- [x] Token query :- Authorize [Currently checks for valid token & if token is present in session]
- [x] Should authorize using cookies
- [x] Should authorize using Authorization header
- [ ] Role based access [Checks for particular role in JWT]
- [ ] Register
- [ ] Authorize UI console
- [ ] Create a UI console to configure the above parts
- [ ] Create next js app
- [ ] Use [Chakra UI](https://chakra-ui.com/docs/getting-started) for quick component boostraping
- [x] Signup
- [x] Forgot password
- [x] Update profile
- [ ] Create a UI console to configure the above parts [For now using graphql playground]
- [ ] Create react app
- [ ] Allow user to configure above mentioned envs
- [ ] Allow user to add user
- [ ] Allow user to view users
- [ ] Allow user to define the JWT token field
- [ ] A component library for react
- [x] A component library for react
- [x] Create YAuthProvider -> gives token, user, loading, setters
- [x] Create YAuth component -> Complete Login/Signup & Forgot password solution
- [x] Create YAuthResetPassword component -> Component that can be used to verify forgot password token and reset the password
- [ ] Create a sdks
- [ ] NodeJS sdk which acts as a middleware and can be used to authenticate & authorize users
- [ ] Golang sdk which acts as a middleware and can be used to authenticate & authorize users
- [x] Create docker image
- [x] Create docker-compose file to quickly start this
- [ ] Create heroku button
- [ ] Create a website