插件窝 干货文章 使用 React 构建密码验证器

使用 React 构建密码验证器

密码 strong password 验证器 508    来源:    2024-10-20

介绍

在本教程中,我们将指导您使用 react 构建一个简单有效的密码验证器。这个项目非常适合想要在 react 中练习表单验证和处理用户输入的初学者。

项目概况

密码验证器实时检查用户密码的强度,并提供有关密码是否符合强密码标准的反馈。反馈显示在输入字段下方,鼓励用户创建更安全的密码。

特征

  • 实时验证:提供有关密码强度的即时反馈。
  • 用户友好的界面:简单干净的设计使密码验证过程变得简单。
  • 动态反馈:指示密码强度的颜色编码消息。

使用的技术

  • react:用于构建用户界面。
  • css:用于设计应用程序的样式。
  • 验证器库:用于验证密码的强度。

项目结构

该项目的结构如下:

├── public
├── src
│   ├── components
│   │   └── password.jsx
│   ├── app.jsx
│   ├── app.css
│   ├── index.js
│   └── index.css
├── package.json
└── readme.md

关键部件

  • password.jsx:处理密码的验证逻辑和输入字段。
  • app.jsx:包装密码组件并管理应用程序的布局。
  • app.css:包含应用程序和组件的样式。

代码说明

密码组件

密码组件负责处理用户输入并验证密码的强度。它使用 usestate 钩子来管理验证消息和颜色,并使用验证器库来检查密码强度。

import { usestate } from 'react';
import validator from 'validator';

const password = () => {
  const [validationmessage, setvalidationmessage] = usestate("");
  const [messagecolor, setmessagecolor] = usestate("black");

  const validate = (value) => {
    if (validator.isstrongpassword(value)) {
      setvalidationmessage("password is strong!");
      setmessagecolor("green");
    } else {
      setvalidationmessage("password is not strong. please consider using a mix of uppercase, lowercase letters, numbers, and symbols.");
      setmessagecolor("red");
    }
  };

  return (
    <div classname="password">
      <form action="post">
        <input type="password" required placeholder="enter password" onchange="{(e)"> validate(e.target.value)} /&gt;
        <p style="{{" color: messagecolor>{validationmessage}</p>
      </form>
    </div>
  );
};

export default password;

在此组件中,usestate 钩子用于管理验证消息及其颜色。验证函数使用验证器库检查密码强度并相应更新状态。

应用程序组件

app 组件处理应用程序的整体布局并渲染密码组件。

import password from "./components/password";
import "./app.css";

const app = () =&gt; {
  return (
    <div classname="app">
      <div classname="header">
        <h1>password validator</h1>
      </div>
      <password></password><div classname="footer">
        <p>made with ❤️ by abhishek gurjar</p>
      </div>
    </div>
  );
};

export default app;

该组件构建布局,提供页眉和页脚,同时在中心渲染密码组件。

css 样式

css 文件确保布局简单且响应灵敏。输入字段的风格易于用户使用,反馈消息根据密码强度进行颜色编码。

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: sans-serif;
  background-color: #f0f0f0;
  color: black;
}

.app {
  margin-top: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}

.header {
  margin-bottom: 10px;
}

.password {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 20px;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.password input {
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 3px;
  margin-bottom: 10px;
}

.password p {
  font-size: 0.8em;
}

.footer {
  margin-top: 100px;
}

.password 类集中密码输入和验证消息,并且按钮的样式具有现代外观。验证消息的颜色变化让用户的反馈更加直观。

安装与使用

要开始此项目,请克隆存储库并安装依赖项:

git clone https://github.com/abhishekgurjar-in/password-validator.git
cd password-validator
npm install
npm start

这将启动开发服务器,并且应用程序将在 http://localhost:3000 上运行。

现场演示

在此处查看密码验证器的现场演示。

结论

这个密码验证器是一个很棒的项目,可以在 react 中获得表单验证和管理状态的实践经验。它教授用户输入处理和实时反馈的基本原理。

制作人员

  • 灵感:该项目的灵感来自于对安全密码实践和表单验证技术的需求。

作者

abhishek gurjar 是一位热衷于构建交互式和响应式 web 应用程序的 web 开发人员。您可以在 github 上关注他的工作。