Auth microservice for PRPO subject at UNI LJ

Overview

prpo-auth microservice

This repository contains a source code for user management microservice used in a demo project developed under PRPO subject at UNI LJ.

Setup

Run a development database via Docker:

docker run -p 5432:5432 \
    -e POSTGRES_USER=prpo \
    -e POSTGRES_PASSWORD=rootroot \
    -v prpo:/var/lib/postgresql/data \
    -d postgres:13

Install dependencies and compile:

go mod download
make bindata
make build

Create signing keys:

./auth genkeys # this creates signing key pair under `conf` directory

Create a user from command line:

./auth createuser --email [email protected] --name username123 --password securepwd

Run the server:

./auth serve

System behaviour can be configured through configs/config.ini.

Documentation

TODO: Write an OpenAPI spec.

This microservice exposes its functionality via the following http endpoints:

  • /authorize POST - Obtain JWT refresh and access tokens either via email-password pair or and old refresh token.
  • /change_password PUT Change user's password by providing an old password.
  • /users POST Create a new user (used for signup/register).
  • /users/{uid} GET Retrieve user info by providing UID from JWT token's subject field.
  • /signing_key GET Obtain server's public signing key to verify token validity.

Excercise goal equivalents

The orinal excercise is designed for Java and JDBC. Here are some analogus goals fulfiled by this go implementation:

  1. A sample wiki page.
  2. Dependency management implemented using go modules.
  3. Http endpoints defined in internal/router/routes.go and implemented in internal/handle/.
  4. Model management functions in internal/models/.
  5. Database migrations defined in configs/migrations/.
Releases(0.2)
Owner
Žiga Patačko Koderman
Žiga Patačko Koderman
vault-plugin-auth-usertotp is an auth method plugin for HashiCorp Vault.

vault-plugin-auth-usertotp is an auth method plugin for HashiCorp Vault. Create user accounts, add TOTP tokens (user supplied pin + totp), and have peace of mind using 2FA.

null 0 Jul 30, 2021
Gets Firebase auth tokens (for development purposes only)Gets Firebase auth tokens

Firebase Token Gets Firebase auth tokens (for development purposes only) Getting started Create Firebase project Setup Firebase authentication Setup G

MousyBusiness 1 Nov 17, 2021
Auth Go microservice for managing authentication sessions

cryptomath-go-auth Auth Go microservice for managing authentication sessions. Install dependencies $ make deps Build $ make vendor $ make build Databa

Crypto Math 0 Mar 4, 2022
The boss of http auth.

Authboss Authboss is a modular authentication system for the web. It has several modules that represent authentication and authorization features that

Volatile Technologies Inc. 3.1k May 17, 2022
Provides AWS STS credentials based on Google Apps SAML SSO auth with interactive GUI support

What's this This command-line tool allows you to acquire AWS temporary (STS) credentials using Google Apps as a federated (Single Sign-On, or SSO) pro

Quan Hoang 30 Apr 29, 2022
Validate Django auth session in Golang

GoDjangoSession Valid for django 3.0.5 Usage: package main import ( "encoding/base64" "fmt" "session/auth" "github.com/Kuzyashin/GoDjangoSession"

Alexey Kuzyashin 26 Feb 13, 2022
Golang Mongodb Jwt Auth Example Using Echo

Golang Mongodb Jwt Auth Example Using Echo Golang Mongodb Rest Api Example Using Echo Prerequisites Golang 1.16.x Docker 19.03+ Docker Compose 1.25+ I

Şuayb Şimşek 6 Sep 21, 2021
Durudex Auth Service

⚡️ Durudex Auth Service Durudex Auth Service ?? Prerequisites Go 1.17 migrate grpc ⚙️ Build & Run Create an .env file in the root directory and add th

null 11 Apr 16, 2022
Figma Auth service for Haiku Animator

Figma Auth service for Haiku Animator In order to use Haiku Animator's Figma integration, a service must be running to perform OAuth2 token exchange.

Haiku 3 Feb 28, 2022
Golang Kalkancrypt Wrapper - simple digital signature auth service

Golang Kalkancrypt Wrapper WIP ⭐ Star on GitHub — it motivates me a lot! Overview Golang Kalkancrypt Wrapper - это простой веб-сервис для аутентификац

Abylaikhan Zulbukharov 44 May 4, 2022
Run multiple auth functions by relation

Relation Run multiple auth functions by relation. Signatures func New(relation string, conditions ...func(c *fiber.Ctx) bool) fiber.Handler Import imp

Eren BALCI 4 Oct 31, 2021
Auth Middleware for session & white-listed routing

Auth Middleware for session & white-listed routing

Joe Gasewicz 2 Nov 4, 2021
HTTP-server-with-auth# HTTP Server With Authentication

HTTP-server-with-auth# HTTP Server With Authentication Introduction You are to use gin framework package and concurrency in golang and jwt-go to imple

Saba Sahban 12 May 12, 2022
K8s controller to manage the aws-auth configmap

aws-auth-manager A kuberneres controller to manage the aws-auth configmap in EKS using a new AWSAuthItem CRD. The aws-auth configmap is used to give R

Matteo Ruina 11 Apr 20, 2022
JWT Auth in Golang

Credits This package used github.com/dgrijalva/jwt-go underhood and it heavily based on this post: http://www.inanzzz.com/index.php/post/kdl9/creating

Pablo Fuentes 0 Dec 12, 2021
Nsq http auth service for golang

nsq-auth nsq http auth service ./nsq-auth -h Usage: 2021/12/25 17:10:56 Usage:

纸喵 9 Apr 21, 2022
Go Trakt Device Auth Library

A Go library to allow an end user to authorize a third-party Trakt application access to their account using the device method.

Brenek Harrison 0 Jan 7, 2022
Auth: a simple signup api for golang

auth This is a simple signup api You can access the db.go file and change the database credentials to your local postgres credentials. To run it prope

Gabriel Cervante 0 Jan 16, 2022
Goal: Develop a Go start auth starter without Gin framework

Goal: Develop a Go start auth starter without Gin framework and learn along the

Kai Hendry 2 Feb 1, 2022