How to Implement JWT Authentication in React

Add a simple JWT authentication to a React Template

This page explains how to update a React Template to support authentication using the JWT strategy. After the update, the project will have the following features:

  • Guest users are redirected to authenticate

  • Users are able to authenticate using a registered account

  • Users are able to register new accounts

  • Users are able to logout from the application

  • The App will use an open-source Node JS Backend published on Github - Product features:

    • API Definition - the unified API structure implemented by this server

    • Simple, intuitive codebase - can be extended with ease.

    • TypeScript, Joy for validation

    • Stack: NodeJS / Express / SQLite / TypeORM

    • Auth: Passport / passport-jwt strategy

Used Template: Soft UI React

Soft UI Dashboard is an open-source React Dashboard template crafted by Creative-Tim on top of M-UI (ex. Material-UI), the most popular components library for React. The product can be downloaded from the official product page but also directly from Github and compiled in a local environment:

$ git clone https://github.com/creativetimofficial/soft-ui-dashboard-react.git
$ cd soft-ui-dashboard-react
$
$ yarn       # install dependencies
$ 
$ yarn start # start for development 
$
$ yarn build # production build 

In order to make this template a real app enhanced with a usable JWT authentication flow, we will make a few changes over the codebase:

  • #1 - Update Dependencies

    • Add formik

  • #2 - Code the Guard component

  • #3 - Define the app store to handle the persistence on the client-side

  • @Todo

  • @Todo

1# - Update Dependencies

@ToDo

2# - Code Auth Guard Component

@Todo

Last updated