序文:この記事では、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 の実装
簡単に説明すると、これら 3 つの方法は、レンダリング プロップ、高階コンポーネント、カスタム フッ...
序文この記事を書いた主な理由は、チームリーダーが、ブラウザを使用してコンピューターのカメラを呼び出し...
よく使用されるコマンドは次のとおりです。 chmod 777 文件或目錄例: chmod 777 /...
ワンクリック実行仮想マシンに Python 3.8 をインストールするには、ネットワーク アダプター...
最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...
CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...
目次序文jQuery 以外の場合は何を使うのでしょうか? DOMとイベントAJAX リクエスト要約す...
この記事では、参考までに、加算計算機を実装するためのJavaScriptの具体的なコードを紹介します...
目次1. シナリオの説明: 2. 事例のデモンストレーション: 2.1. MySQLの障害発生前にデ...
要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...
目次1.union: クエリ結果を追加できます1) すべてを結合: 重複を削除できません2) ユニオ...
目次1. 覚えておくべき知識1. 変数タイプ2. シェル変数の説明3. シングルクォート、ダブルクォ...
目次1. インデックスの基本1. インデックスの種類1.1 Bツリーインデックス1.2 ハッシュイン...
Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...
1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...