序文:この記事では、Ant Design Proログイン機能にグラフィック検証コードコンポーネントを統合する手順のみを紹介します。サーバー側の方法については、「OAuth2.0認証システムに基づく検証コード機能」を参照してください。 文章:Ant Design Pro テンプレートでは、アカウントとパスワードのログイン機能部分 (以下に示す) にグラフィック検証コードが開発されていないため、この機能を自分で実装する必要があります。ここでのログイン機能は実際にはフォームの送信なので、グラフィック検証コード フォーム コントロールを独自に開発するだけで済みます。具体的な実装は次のとおりです。 1. グラフィック検証コードフォーム制御コードCaptchaInput.tsx: 'react' から React、{useState、useEffect} をインポートします。 'antd' から {Input, message} をインポートします。 '@ant-design/icons' から {SafetyCertificateOutlined} をインポートします。 '@/utils/api' から api をインポートします。 "@/utils/stringUtil" から stringUtil をインポートします。 「@/utils/request」からリクエストをインポートします。 "umi" から {useIntl} をインポートします。 インターフェース CaptchaInputValue { captchaコード?: 文字列; captchaKey?: 文字列; } インターフェース CaptchaInputProps { 値?: CaptchaInputValue; onChange?: (値: CaptchaInputValue) => void; } /** * 認証コードを取得 */ const getCaptcha = 非同期() => { 試す { const データ = リクエストを待機します (api.captcha); (データコード === 1)の場合{ data.data を返します。 } } キャッチ(エラー){ message.error('部門ツリーを取得できませんでした。もう一度お試しください'); 戻る []; } message.error('部門ツリーを取得できませんでした。もう一度お試しください'); 戻る []; } const CaptchaInput: React.FC<CaptchaInputProps> = ({value = {}, onChange}) => { 定数 intl = useIntl(); const [captchaCode、setCaptchaCode] = useState<文字列>(''); const [captchaKey、setCaptchaKey] = useState<文字列>(''); const [imageData, setImageData] = useState<string>(''); // トリガーの変更 const triggerChange = (changedValue: { captchaCode?: string; captchaKey?: string }) => { 変更があった場合 onChange({captchaCode、captchaKey、...値、...変更された値}); } }; 使用効果(() => { getCaptcha().then((データ: any) => { キャプチャキーを設定します。 画像データを設定します。 トリガーの変更({captchaKey: data.captchaKey}); }) }, []); // 入力ボックスの変更 const onChangeInput = (e: React.ChangeEvent<HTMLInputElement>) => { const コード = e.target.value || ''; (stringUtil.isNotEmpty(コード))の場合{ CaptchaCodeを設定します(コード)。 } トリガー変更({captchaCode: コード}); } // 時間型の変更 const onClickImage = () => { getCaptcha().then((データ: any) => { キャプチャキーを設定します。 画像データを設定します。 トリガーの変更({captchaKey: data.captchaKey}); }) }; 戻る ( <span> <Input.Group コンパクト> <Input prefix={<SafetyCertificateOutlined style={{color: "#319cff"}}/>} placeholder={intl.formatMessage({ id: 'pages.login.captcha.placeholder', defaultMessage: '認証コードを入力してください', })} onChange={onChangeInput} スタイル={{幅: '75%', マージン右: 5, パディング: '6.5px 11px 6.5px 11px', 垂直配置: 'middle'}}/> <img style={{幅: '23%', 高さ: '35px', 垂直配置: 'middle', パディング: '0px 0px 0px 0px'}} src={imageData} onClick={onClickImage}/> </Input.Group> </span> ); }; デフォルトの CaptchaInput をエクスポートします。 2. ログインページ統合コンポーネント: './components/CaptchaInput' から CaptchaInput をインポートします。 …… const handleSubmit = (値: LoginParamsType) => { const { ディスパッチ } = props; values.client_id = "hanxiaozhang"; values.client_secret = "hanxiaozhang"; values.scope = "hanxiaozhang"; values.grant_type = "パスワード"; 値.captcha_key = 値.captchaComp.captchaKey; 値.captcha_code = 値.captchaComp.captchaCode; values.captchaComp を削除します。 急送({ タイプ: 'ログイン/ログイン'、 ペイロード: {...値、タイプ}, }); }; …… <Form.Item name="captchaComp" ルール={[{ 検証トリガー: 'onBlur'、 バリデータ: async (ルール, 値) => { // console.log(ルール) (文字列ユーティリティが空の場合(値キャプチャコード)){ throw new Error('確認コードを入力してください!'); } } },]}> <キャプチャ入力/> </フォーム.アイテム> …… 3. 使用方法: 統合後の効果は次のとおりです。 上記は、Ant Design Pro ログイン機能にグラフィック検証コード コンポーネントを統合する詳細です。Ant Design Pro ログインの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: MySQL でデータ復旧に binlog を使用する方法
>>: Maven+Tomcat 基本イメージを構築する Docker の実装
目次背景技術的ソリューション具体的な実装要約する背景Element UI は、PC で人気の Vue...
まとめプロジェクトの説明形式<img src="..."> H2+ ...
1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...
MySQL のインストールについてはインターネット上に多くの記事がありますが、今日ノート PC にイ...
Linux touch コマンドの詳細な説明: 1. コマンド機能:ファイルまたはディレクトリの作成...
この記事の例では、円形のプログレスバーのドラッグアンドスライドを実現するための具体的なJSコードを紹...
目次クラスコンポーネント機能コンポーネントsetStateの落とし穴React では多くの場所でデー...
W3Cschoolではこのように説明しています<meta> 要素は、検索エンジン向けの説...
1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...
目次プロセスコミュニケーションプロセス間の双方向通信問題要約するサードパーティのデータ サプライヤー...
この記事では、MySQL で 2 つのテーブルを関連付ける結合テーブルにインデックスを作成する方法を...
目次1. React.Children.map 2. React.Children.forEach ...
目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...
このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...
MySQL ブール値、偽または真を格納つまり、データベースに保存されるブール値は 0 と 1 であり...