Go Oauth Server

This is sample OAuth integration written in GoLang that also uses MongoDB. This is a sample TODO Application where people can Create and update Tasks.

The application makes use of both Google Authentication and GitHub Authentication

The documentation can be found here:

Postman Documentation

Tech Stack

Architecture

This Application makes use of Clean Architecture

This architecture enables us to add more authentication methods in future and also we can shift to a different database completely as the API makes use of services and the database implementation is written in the repository.

Usage

  • Clone this repo
  • Create a .env file like the following sample

GOOGLE_OAUTH_CLIENT_ID=
GOOGLE_OAUTH_CLIENT_SECRET=
GITHUB_OAUTH_CLIENT_ID=
GITHUB_OAUTH_CLIENT_SECRET=
JWT_SECRET=
MONGO_URI=

GitHub OAuth2

  • Follow the documentation given here

Google OAuth2

  • Follow the documentation given here

  • You can run docker-compose up this will spin up the mongoose database also for you.

Contributions

  • Feel Free to Open a PR/Issue for any feature or bug(s).
  • Make sure you follow the community guidelines!
  • Feel free to open an issue to ask a question/discuss anything with regards to any improvements in the implementation.
  • Have a feature request? Open an Issue!

License

Copyright 2021 Hemanth Krishna

Licensed under MIT License : https://opensource.org/licenses/MIT

GitHub

https://github.com/DarthBenro008/go-oauth