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.
- Go: >1.13, <=1.16
- Database: MySQL 5.7 or later
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/[email protected]/unsafe.go:20 +0x132
# install sqlboiler
$ go install -v github.com/volatiletech/[email protected]
$ go install -v github.com/volatiletech/sqlboiler/drivers/[email protected]
$ 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
- User registration / login
- Oauth2 APIs
- JWT-based authorization
- Role-based access control (RBAC)
- Admin page link
The Installation doc have a guide on how to setup the Pluto server via Docker images, Kubernetes or from source.
All documents can be found in /docs
Here are some helpful documents for reading.
- API Document
- Oauth2
- Configuration
- Replace Views is a guide for replacing the default html pages with your own custom files
- JWT Token gives an introduction of the JWT design in Pluto.
- WeChat Login gives an introduction of signing in with WeChat QRCode.
https://hub.docker.com/repository/docker/mushare/pluto
Feel free to fire an issue or send a pull request.
MIT License, see LICENSE