1.0.20 • Published 5 years ago

react-pass-strength v1.0.20

Weekly downloads
2
License
MIT
Repository
-
Last release
5 years ago

React Pass Strength

Build Status npm

npm

This is a small library I created which lets you measure password strength and also checks it against Have I Been Pwned APIs created by Troy Hunt to see if is found in a breach before or not.

Demo

Try out the demo on Stackblitz!

Install

npm i react-pass-strength --save

Since npm doesn't install the peer dependencies automatically, you will need to install sha1 npm package which is needed to calculate the password hash:

npm i sha1 rxjs --save

For a full dependency list refer to package.json file.

Setup

Import the component into your component where you want to use it. Then use <ReactPassStrength /> and pass the password and a callback at least.

import React, { Component } from "react";
import ReactPassStrength from "./PasswordStrength";

interface AppProps {

}

interface AppState {
  password: string;
}

export default class App extends Component<AppProps, AppState> {
  constructor(props: AppProps) {
    super(props);
    this.state = {
      password: ""
    };

    this.handlePassStrengthChange = this.handlePassStrengthChange.bind(this);
    this.handleChange = this.handleChange.bind(this);
  }

  render() {
    return (
      <div className="container">
        <form>
            <div className="form-group">
                <label>Password</label>
                <input type="password" 
                    className="form-control" id="exampleInputPassword1" 
                    value={this.state.password}
                    onChange={this.handleChange}
                    placeholder="Password"/>
            </div>

          <ReactPassStrength passwordToCheck={this.state.password} 
            onStrengthChanged={this.handlePassStrengthChange} />
        </form>
      </div>
    );
  }

  handleChange(event: React.FormEvent<HTMLInputElement>) {
    this.setState({
      password: event.currentTarget.value
    });
  }

  handlePassStrengthChange(strength: number | null) {
      console.log(strength);
  }
}

Customisation

You can customise the font family and label if you would like to. Simply pass them as inputs.

<ReactPassStrength passwordToCheck={this.state.password} 
    fontFamily="'Open Sans'"
    onStrengthChanged={this.handlePassStrengthChange} />

And you can change the label too.

<ReactPassStrength passwordToCheck={this.state.password} 
    fontFamily="'Open Sans'"
    barLabel="'Strength'"
    onStrengthChanged={this.handlePassStrengthChange} />

Development

Run locally

This project was bootstrapped with Create React App.

Simply run:

npm start

Contribute

For any type of contribution, please follow the instructions in CONTRIBUTION and read the Code of Conduct file too.

Author

Yaser Adel Mehraban (yashints)

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago