Skip to content
/ pluto Public
forked from leeif/pluto

An JWT based authentication & authorization service designed for microservices

License

Notifications You must be signed in to change notification settings

MuShare/pluto

 
 

Repository files navigation

Pluto

Build Status Go Report Card Gitter

Pluto is a JWT based authorization/authentication service. Besides providing a basic user registration and login feature, Pluto also provides a RBAC management to control the user's permission. Pluto implements the OAuth2 specified APIs for authorization.

Setup

Environments

  • Go: >1.13, <=1.16
  • Database: MySQL 5.7 or later

Go version

Error occoured while go version is later than 1.16.

panic: qtls.ClientHelloInfo doesn't match

goroutine 1 [running]:
github.com/marten-seemann/qtls-go1-15.init.0()
        /go/pkg/mod/github.com/marten-seemann/qtls-go1-15@v0.1.1/unsafe.go:20 +0x132

Deployment

# install sqlboiler
$ go install -v github.com/volatiletech/sqlboiler@v3.6.0
$ go install -v github.com/volatiletech/sqlboiler/drivers/sqlboiler-mysql@v3.6.0
$ git clone ...
# start mysql and create `pluto` database
$ make migrate-binary-build
# run migrations
$ ./bin/pluto-migrate
# build server
$ make server-binary-build
# start server
$ pluto-server

Main Features

  • User registration / login
  • Oauth2 APIs
  • JWT-based authorization
  • Role-based access control (RBAC)
  • Admin page link

Getting started

The Installation doc have a guide on how to setup the Pluto server via Docker images, Kubernetes or from source.

Documents

All documents can be found in /docs

Here are some helpful documents for reading.

Docker image

https://hub.docker.com/repository/docker/mushare/pluto

Contribute

Feel free to fire an issue or send a pull request.

License

MIT License, see LICENSE

About

An JWT based authentication & authorization service designed for microservices

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 57.3%
  • HTML 42.0%
  • Other 0.7%