Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
react-password-checklist
Advanced tools
A React Component to display the success or failure of password strength rules, ideal for registration or password reset forms.
A React Component to display the success or failure of password strength rules that updates as a user types.
npm install --save react-password-checklist
yarn add react-password-checklist
Note: react is a peer dependency. You should be using this in a React project.
import React, {useState} from "react"
import PasswordChecklist from "react-password-checklist"
const SignUp = () => {
const [password, setPassword] = useState("")
const [passwordAgain, setPasswordAgain] = useState("")
return (
<form>
<label>Password:</label>
<input type="password" onChange={e => setPassword(e.target.value)}>
<label>Password Again:</label>
<input type="password" onChange={e => setPasswordAgain(e.target.value)}>
<PasswordChecklist
rules={["minLength","specialChar","number","capital","match"]}
minLength={5}
value={password}
valueAgain={passwordAgain}
onChange={(isValid) => {}}
/>
</form>
)
}
import React, {useState} from "react"
import PasswordChecklist from "react-password-checklist"
const SignUp = () => {
const [password, setPassword] = useState("")
const [passwordAgain, setPasswordAgain] = useState("")
return (
<form>
<label>Password:</label>
<input type="password" onChange={e => setPassword(e.target.value)}>
<label>Password Again:</label>
<input type="password" onChange={e => setPasswordAgain(e.target.value)}>
<PasswordChecklist
rules={["minLength","specialChar","number","capital","match"]}
minLength={8}
value={password}
valueAgain={passwordAgain}
messages={{
minLength: "La contraseña tiene más de 8 caracteres.",
specialChar: "La contraseña tiene caracteres especiales.",
number: "La contraseña tiene un número.",
capital: "La contraseña tiene una letra mayúscula.",
match: "Las contraseñas coinciden.",
}}
/>
</form>
)
}
Customize the component to display only the rules you need in the desired order you wish to display them.
Valid if the password meets the minimum length. Requires minLength
prop to be included.
Valid if the password meets the maximum length. Requires maxLength
prop to be included.
Valid if the password contains a special character from this list.
Valid if the password contains a number.
Valid if the password contains a capital letter.
Valid if the password matches the confirm password valid. Requires valueAgain
prop to be included.
Valid if the password contains a letter (capital or lowercase)
Valid if the password contains a lowercase letter
Valid if the password and confirm passwords both contain any character. Requires valueAgain
prop to be included.
Valid if the password contains both a capital letter and lowercase letter.
Valid if the password does not contain a space.
Prop | Description | Type | Required | Default |
---|---|---|---|---|
rules | Rules to display in the order desired. Options are minLength , maxLength , specialChar ,number , letter , capital , match , lowercase , notEmpty , capitalAndLowercase , noSpaces | array | yes | |
value | Current potential password | string | yes | |
valueAgain | Current potential password confirmation | string | Only withmatch rule | |
minLength | Minimum Password Length | number | Only withminLength rule | |
maxLength | Maximum Password Length | number | Only withmaxLength rule | |
specialCharsRegex | Regular expression to be used to validate the specialChars rule | RegExp | /[~`¿¡!#$%\^&*€£@+÷=\-\[\]\\';,/{}\(\)|\\":<>\?\.\_]/g | |
onChange | Callback that is triggered when the validity of any rule changes. | function | (isValid: boolean, failedRules: string[]) => {} | |
messages | Object with keys as rules, and values as strings to use as the message to be displayed | object | ||
className | Class applied to the entire component | string | ||
rtl | apply rtl styles | boolean | false | |
hideIcon | Remove the SVG icon element | boolean | false | |
style | Inline styles applied to the outer component wrapper | object | ||
iconSize | Size of ✔ or 𐄂 icon | number | 18 | |
validTextColor | Color of valid text | string | Inherited color | |
invalidTextColor | Color of invalid text | string | Inherited color opacity 0.5 | |
validColor | Color of checkmark icon. Not used with custom iconComponents | string | #4BCA81 | |
invalidColor | Color of X icon. Not used with custom iconComponents | string | #FF0033 | |
iconComponents | Optional object containing keys of ValidIcon and InvalidIcon with a React Node to be displayed in place of icon. Both icons required if used. Example: {ValidIcon: <img src="valid.png" />, InvalidIcon: <img src="invalid.png" />} | object |
.valid
- Valid Message.invalid
- Invalid MessagePRs are welcome for additional functionality! See the Run Locally section below. Pull requests should include unit tests and potentially storybook stories to cover the updates. Thanks!
npm i
to install dependencies.
npm run storybook
FAQs
A React Component to display the success or failure of password strength rules, ideal for registration or password reset forms.
The npm package react-password-checklist receives a total of 7,865 weekly downloads. As such, react-password-checklist popularity was classified as popular.
We found that react-password-checklist demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.