2.5 hours



Any Level




Mike M

Create Golang (Go programming language) RESTful API authentication with a JSON Web Tokens (JWT) in less than 2 hours.

Expected learning & outcomes

  • Build a user registration and login backend with Golang
  • Understand JSON Web Tokens (Header, Payload, Signature)
  • Create RESTful APIs (user signup, login and a protected endpoint)
  • Authenticate users with email, password and a JWT
  • Secure RESTful endpoints with JWTs
  • Examine the internals of a JWT
  • Sign and validate a JWT
  • Create a Postgres database instance and a users table and insert records into the table
  • Examine the definitions of different Golang package methods

    Skills you will learn

    APIs, Development, Programming, Rest APIs, SQL, Testing

    About this course

    Build Golang (Go programming language) REST API authentication with JWTs is a straightforward introductory guide on creating secure Golang APIs with JSON Web Tokens (JWTs).

    You will:

    - learn the theory behind JSON WEB TOKENs (JWTs) and how they are constructed and used,

    - build a Golang (Go programming language) signup handler function that takes the user’s credentials such as email and password and saves them on a PostgreSQL database table,

    - implement a Golang (Go programming language) utility that generates password hashes with the ‘bcrypt’ package to avoid storing plain text passwords on the database

    - build a Golang (Go programming language) login handler function that takes user credentials and verifies the user based on their supplied credentials

    - implement a Token generator utility that takes the user’s credentials, and together with developer specified secret and claims, generates a JSON Web Token (JWT),

    - create a Golang (Go programming language) middleware function that validates a JWT token upon request to restricted routes

    Also, Throughout the process you will learn several Golang (Go programming language) and REST API authentication concepts.

    Aside from Golang (Go programming language), some of the major technologies you will use are:

    • PostgreSQL database to create a database instance and a users table where your records will be stored in,

    • jwt-gopackage for generating the JSON Web Token and its validation,

    • gorilla/muxpackage for creating the router that your endpoints and handler functions will be registered on,

    • pqpackage for parsing your database instance’s URL,

    • database/sqlpackage for establishing and maintaining connection with your database instance,

    • bcrypt’ package for generating and comparing your password hashes,

    • Postman application for testing your APIs with several HTTP requests


    Lore delivers value at the intersection of learning, interests and skills.

    Learn from Domain Experts

    Access learning options recommended by industry experts, professionals and thought leaders.

    Search & Compare

    Quickly search, select and add learning options to your learning list.

    Personalize your feed

    Tell us more about yourself to access the latest learning options, curated just for you.