React を使用してパスワード検証ツールを構築する

WBOY
リリース: 2024-09-09 06:30:40
オリジナル
902 人が閲覧しました

Building a Password Validator with React

導入

このチュートリアルでは、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: Password コンポーネントをラップし、アプリケーションのレイアウトを管理します。
  • 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)} />
        <p style={{ color: messageColor }}>{validationMessage}</p>
      </form>
    </div>
  );
};

export default Password;
ログイン後にコピー

このコンポーネントでは、useState フックを使用して検証メッセージとその色の両方を管理します。 validate 関数は、バリデータ ライブラリを使用してパスワードの強度をチェックし、それに応じて状態を更新します。

アプリコンポーネント

App コンポーネントはアプリケーション全体のレイアウトを処理し、Password コンポーネントをレンダリングします。

import Password from "./components/Password";
import "./App.css";

const App = () => {
  return (
    <div className="app">
      <div className="header">
        <h1>Password Validator</h1>
      </div>
      <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 で実行されます。

ライブデモ

ここでパスワード検証ツールのライブデモをチェックしてください。

結論

この Password Validator は、React でのフォーム検証と状態管理を実際に体験できる素晴らしいプロジェクトです。ユーザー入力の処理とリアルタイムのフィードバックの基本原則を学びます。

クレジット

  • インスピレーション: このプロジェクトは、安全なパスワードの実践とフォーム検証技術の必要性からインスピレーションを受けています。

著者

Abhishek Gurjar は、インタラクティブで応答性の高い Web アプリケーションの構築に情熱を注ぐ Web 開発者です。彼の作品は GitHub でフォローできます。

以上がReact を使用してパスワード検証ツールを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート