Production ready, gRPC enabled, Auth microservice
Explore the docs »
View Demo
.
Report Bug
.
Request Feature
An Authentication microservice written in Go. Auth is a vital part in most of the real world Products/Services. Almost every project on open internet need authentication. So, I built this microservice so that, Instead of implementing Auth from scratch in each of my projects, I can spin up an Auth-ms instance and focus on other important features of my project.
Why this is better:
- Your time should be focused on creating something amazing. A project that solves a problem and helps others
- You shouldn't be doing the same tasks over and over like implementing Auth from scratch in every project
- You should element DRY principles to the rest of your life 😄
- Most of the other libraries have the following shortcomings:
- Way too complex to be integrated in a simple project (maybe a college project)
- Not Production Ready
- Need to be deeply nested in project source code
Of course, This might not be suited for much more sophisticated Auth requirements, but it is sufficient enough to be used in majority of the projects I've created during my college years.
- Golang
- Zap
- gRPC
- Gorilla MUX
- GORM
- Viper
- Go standerd libraries
There are several ways to get started
- Deploy a prebuilt docker container
- Build and run locally
- Docker compose
- Standalone installation
For Docker:
- PostgreSQL
- Docker
For Docker Compose:
- Docker
- Docker Compose
For StandAlone Service:
- Golang
- PostgreSQL
Step 1: Fullfill the prerequisites
Step 2: Depending upon the type of installation you want, It may vary:
Using Docker:
- Start your Postgres Server and Create a Database
- In the Project root, rename the
.env.example
to.env
and Fill all the DB info like host, port, etc. - Build the Project using Docker
docker build -t auth .
- Run docker Container
docker run auth
Using Docker Compose:
- Run the container using docker-compose
docker-compose up -d
As Standalone Service
- download all the dependencies
go mod download
- Run the Service:
go run main.go
NOTE: While using the Docker/Docker-compose methods, Instead of building locally, You can also fetch a prebuilt container using the following command
docker pull ghcr.io/theanuragshukla/auth-microservice:sha256-3f2a36a9358dcf2c38881ed2ab01afcd5ee7f695de9fb5b2c6e23590a4b81bd6.sig
- Provides basic Authentication:
- Access and Refresh tokens
- UID
- Fully Integrated Logging, for easy debugging in case of any failure
- Live monitoring using Log files
- gRPC endpoints for integration with other services
- REST endpoints for client side applications
- Automatically DB Managements using GORM
TODO
- Anurag Shukla - Comp Sci Student - Anurag Shukla - built Auth-ms