React Frontend Password Validation (Strong Password)

In developing applications, we want to ensure our users input a password with a specific set of criteria (length, special characters, etc). Often the case, this is for security purposes to protect users. The users must know these rules when signing up, preferably displayed to them in the UI. This tutorial will show a very nice library of how to do exactly that in React.

Step 1-) Download the package react-password-checklist:

https://www.npmjs.com/package/react-password-checklist

    > npm install --save react-password-checklist

    > yarn add react-password-checklist

Step 2-) Import in your component:

   import PasswordChecklist from "react-password-checklist";

Step 3-) Paste the following into your return section for your component:

<PasswordChecklist

  rules={["minLength", "specialChar", "number", "capital", "match", "lowercase"]}

  minLength={8} value={password} valueAgain={confirmPassword}

/>

As you can see above we have the {password} and {confirmPassword} fields. These fields correspond to the given value names you give to the signup form components. My fields look as follows:

The code I used to define the Password* and Confirm Password* fields look like this:

<TextField label='Password' placeholder='Enter password' onChange={handlePassword} 
  value={password} variant="standard" type={passwordShown ? "text" : "password"} fullWidth required />

<TextField label='Confirm Password' placeholder='Enter password' onChange={handleConfirmPassword} value={confirmPassword} variant="standard" 
  type={passwordShown ? "text" : "password"} fullWidth required />

I just wanted to show how the "value" and "valueAgain" fields match those specified in the corresponding text fields.

Furthermore, we can define other rules such as the minLength or other characters we desire for the user in their passwords, such as needing a lowercase, uppercase, number, etc. Once that is done that is all you need to show the user they are inputting a password based on your rules, and it should look something as follows:

Conclusion:

This package is nice because a lot of the heavy-duty lifting such as the dynamic checking of values, displaying of the checks and X's, and the text itself e.g. "Passwords match" (Image 2), is handled by this library. You just have to worry about wiring it to the corresponding components and assigning your own rules, and then you are good to go! Best of all, it is free to use and saves a lot of time. Hope this helped, thanks for reading.

Create a free account to access full content.

All access to code and resources on ShillehTek.

Signup Now

Already a member? Sign In

Explore More on Our Blog

How to Post to Reddit Using Python

How to Post to Reddit Using Python

Post to reddit automatically using a Python script.

How to Create a Time-Lapse Video with a Raspberry Pi Camera

How to Create a Time-Lapse Video with a Raspberry Pi Camera

Learn how to make a timelapse with your Raspberry Pi in Python.

How to Integrate the MPU6050 with the STM32 Blue Pill

How to Integrate the MPU6050 with the STM32 Blue Pill

Learn how to measure acceleration with the STM32 and the MPU6050 in the Arduino IDE.

Getting Started with STM32 Blue Pill in Arduino IDE Using a USB to TTL Converter — Write Your First Program

Getting Started with STM32 Blue Pill in Arduino IDE Using a USB to TTL Converter — Write Your First Program

This comprehensive tutorial will guide you through the process of setting up and programming the STM32 Blue Pill...

Automate Task Scheduling in AWS with Lambda, Step Functions, and CloudWatch

Automate Task Scheduling in AWS with Lambda, Step Functions, and CloudWatch

In this tutorial, I'll show you how to automatically schedule tasks in AWS at regular intervals using AWS...

Implementing Google reCAPTCHA in a Simple React and Node.js App

Implementing Google reCAPTCHA in a Simple React and Node.js App

Learn how to protect your React applications from bots and spam with Google reCAPTCHA integration! This step-by-step tutorial...

AWS Lambda Tutorial: Using Selenium with Chromedriver in Python

AWS Lambda Tutorial: Using Selenium with Chromedriver in Python

In this tutorial, I will guide you through the process of running Selenium with ChromeDriver inside an AWS...

How to Connect MLX90614 Infrared Thermometer to Raspberry Pi Pico W: MicroPython Tutorial!

How to Connect MLX90614 Infrared Thermometer to Raspberry Pi Pico W: MicroPython Tutorial!

Learn how to use the MLX90614 with the Raspberry Pi Pico W and get infrared values in MicroPython.

Raspberry Pi Pico/Pico W Free Simulator

Raspberry Pi Pico/Pico W Free Simulator

Discover how to simulate Raspberry Pi Pico projects using Wokwi, a free online simulator for Arduino and MicroPython....

Interfacing the MPU6050 with Raspberry Pi Pico W in C++

Interfacing the MPU6050 with Raspberry Pi Pico W in C++

Interface with the MPU6050 using the Raspberry Pi Pico W in C++.

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.