Giter Site home page Giter Site logo

golang-auth's Introduction

Golang REST API Project

This is the simple Golang project that covers basic API functionalities like authentication, send verification code, middleware etc.

Topics Covered

  • Golang, Gin & GORM JWT Authentication
  • JWT Authentication Example with Golang and GORM
  • Generate the Private and Public Keys
  • Load and Validate the Environment Variables
  • Create the Database Models with GORM
  • Run the Database Migration with GORM
  • Hash and Verify the Passwords with Bcrypt
  • Sign and Verify the RS256 JSON Web Tokens
    • Function to Generate the Tokens
    • Function to Verify the Tokens
  • Create the Authentication Route Controllers
    • Register User Controller
    • Login User Controller
    • Refresh Access Token Controller
    • Logout Controller
  • Create a Middleware Guard
  • Create a User Controller
    • Authentication Routes
    • User Routes
  • Add the Routes to the Gin Middleware Stack
  • Forgot and reset password
  • Role based route using middlewares

Generate env file

cp app.env.example app.env

Generate Private and Public Keys

  • Generate private and public keys from HERE
  • Copy the key andnavigate HERE to convert it into base64 string
  • Assign the values to respective keys in app.env file

Migrate the database

go run migrate/migrate.go

Run the project

go run cmd/*

golang-auth's People

Contributors

imsujan276 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.