序文:この記事では、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 の実装
Docker の作成Docker Compose は、複数の Docker コンテナを定義して実行す...
MySQLソフトウェアのインストールとデータベースの基礎は参考用です。具体的な内容は次のとおりです。...
目次1. 使用方法2. 準備3. 文法3.1 変数と代入3.2 入力および出力パラメータ3.3 プロ...
目次序文SQL文の最適化遅いクエリSQLを記録する設定を変更する方法スロークエリログを表示するSQL...
さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!--方法 1: onf...
rm コマンドrm コマンドは、ファイルを削除するときによく使用されるコマンドです。ファイルまたはデ...
序文インターセプター最近のフロントエンド フレームワークでは、インターセプターは基本的に非常に基本的...
超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...
目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...
目次序文OpenJDKの確認とアンインストールダウンロードした圧縮パッケージを使用してJDKをインス...
目次序文SSHとは何かssh は何に使用されますか? sshの使い方ssh 再修正要約する序文ssh...
1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...
この記事では、参考までに、虫眼鏡のJavaScriptオブジェクト指向実装の具体的なコードを紹介しま...
この記事では、MySQL 8.0.15 winx64 圧縮パッケージのインストールと設定方法を参考ま...
MJML は、開発者が美しく、応答性に優れ、あらゆるデバイスやメール クライアントで動作する魅力的な...