Vorwort:In diesem Artikel werden nur die Schritte zum Integrieren der grafischen Verifizierungscodekomponente in die Ant Design Pro-Anmeldefunktion vorgestellt. Informationen zur serverseitigen Methode finden Sie unter „Verifizierungscodefunktion basierend auf dem OAuth2.0-Autorisierungssystem“. Text:In der Ant Design Pro-Vorlage wurde für den Teil der Konto- und Kennwort-Anmeldefunktion (siehe unten) kein grafischer Bestätigungscode entwickelt. Daher müssen wir diese Funktion selbst implementieren. Die Anmeldefunktion hier ist eigentlich eine Formularübermittlung, daher müssen wir nur selbst ein grafisches Bestätigungscode-Formularsteuerelement entwickeln. Die konkrete Implementierung ist wie folgt. 1. Grafischer Bestätigungscode-Formular-Kontrollcode CaptchaInput.tsx: importiere React, {useState, useEffect} von „react“; importiere {Eingabe, Nachricht} von 'antd'; importiere {SafetyCertificateOutlined} aus '@ant-design/icons'; API aus „@/utils/api“ importieren; importiere stringUtil aus "@/utils/stringUtil"; Importiere die Anfrage aus "@/utils/request"; importiere {useIntl} von "umi"; Schnittstelle CaptchaInputValue { CaptchaCode?: Zeichenfolge; CaptchaKey?: Zeichenfolge; } Schnittstelle CaptchaInputProps { Wert?: CaptchaInputValue; beiÄnderung?: (Wert: CaptchaInputValue) => ungültig; } /** * Bestätigungscode erhalten */ const getCaptcha = async () => { versuchen { const data = warte auf Anfrage(api.captcha); wenn (Datencode === 1) { Daten.Daten zurückgeben; } } Fehler abfangen { message.error('Abteilungsbaum konnte nicht abgerufen werden. Bitte versuchen Sie es erneut.'); zurückkehren []; } message.error('Abteilungsbaum konnte nicht abgerufen werden. Bitte versuchen Sie es erneut.'); zurückkehren []; } const CaptchaInput: React.FC<CaptchaInputProps> = ({value = {}, onChange}) => { const intl = useIntl(); const [captchaCode, setCaptchaCode] = useState<string>(''); const [captchaKey, setCaptchaKey] = useState<string>(''); const [imageData, setImageData] = useState<string>(''); // Änderung auslösen const triggerChange = (changedValue: { captchaCode?: string; captchaKey?: string }) => { wenn (beiÄnderung) { beiÄnderung({CaptchaCode, CaptchaSchlüssel, ...Wert, ...geänderterWert}); } }; useEffect(() => { getCaptcha().then((Daten: beliebig) => { setCaptchaKey(Daten.captchaKey); setImageData(Daten.Bild); triggerChange({captchaKey: data.captchaKey}); }) }, []); // Änderungen im Eingabefeld const onChangeInput = (e: React.ChangeEvent<HTMLInputElement>) => { const code = e.ziel.wert || ''; wenn (stringUtil.isNotEmpty(code)) { setzeCaptchaCode(Code); } triggerChange({captchaCode: code}); } // Zeittypänderungen const onClickImage = () => { getCaptcha().then((Daten: beliebig) => { setCaptchaKey(Daten.captchaKey); setImageData(Daten.Bild); triggerChange({captchaKey: data.captchaKey}); }) }; zurückkehren ( <span> <Eingabe.Gruppe kompakt> <Eingabepräfix={<SafetyCertificateOutlined style={{color: "#319cff"}}/>} Platzhalter={intl.formatMessage({ ID: "pages.login.captcha.placeholder", defaultMessage: 'Bitte geben Sie den Bestätigungscode ein', })} beiÄnderung={beiÄnderungseingabe} Stil = {{Breite: '75 %', rechter Rand: 5, Polsterung: '6,5px 11px 6,5px 11px', vertikale Ausrichtung: 'Mitte'}}/> <img Stil = {{Breite: '23 %', Höhe: '35px', vertikale Ausrichtung: 'Mitte', Polsterung: '0px 0px 0px 0px'}} src={Bilddaten} beim Klicken={beiKlickBild}/> </Eingabe.Gruppe> </span> ); }; Standard-CaptchaInput exportieren; 2. Integrationskomponenten der Anmeldeseite: importiere CaptchaInput aus „./components/CaptchaInput“; ... ... const handleSubmit = (Werte: LoginParamsType) => { const { dispatch } = Requisiten; Werte.Client_ID = "hanxiaozhang"; Werte.client_secret = "hanxiaozhang"; Werte.Umfang = "hanxiaozhang"; values.grant_type = "Passwort"; Werte.captcha_key = Werte.captchaComp.captchaKey; Werte.Captcha_Code = Werte.CaptchaComp.CaptchaCode; lösche values.captchaComp; versenden({ Typ: 'login/login', Nutzlast: {...Werte, Typ}, }); }; ... ... <Form.Item name="captchaComp" Regeln={[{ validateTrigger: 'beiUnschärfe', Validator: async (Regel, Wert) => { // console.log(Regel) wenn (stringUtil.isEmpty(value.captchaCode)) { throw new Error('Bitte geben Sie den Bestätigungscode ein!'); } } },]}> <CaptchaInput/> </Form.Item> ... ... 3. Verwendung: Der Effekt nach der Integration ist wie folgt: Oben sind die Details zur Integration der grafischen Verifizierungscodekomponente in die Ant Design Pro-Anmeldefunktion aufgeführt. Weitere Informationen zur Ant Design Pro-Anmeldung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: So verwenden Sie Binlog zur Datenwiederherstellung in MySQL
>>: Implementierung des Docker-Buildings für Maven+Tomcat-Basisimages
Um den Export und Import von Daten in SQL zu erle...
Lassen Sie mich Ihnen zuerst das Effektbild zeige...
Inhaltsverzeichnis Problemanalyse Warum Kapselung...
Möglicherweise verwenden Sie hier Include-Dateien,...
Inhaltsverzeichnis Kurze Einleitung Intervall fes...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis 1. Browserunterstützung 2. Exp...
1. Bereiten Sie zunächst VS2019 und die MySQL-Dat...
Vorwort Bei der Entwicklung eines Projekts stieß ...
Gespeicherte Prozeduren 1. Erstellen Sie eine ges...
Vorwort Bei der tatsächlichen Verwendung der Date...
Mit der GROUP BY-Syntax können die Abfrageergebni...
Inhaltsverzeichnis 1. Benutzerdefinierter Import ...
Vorwort Wenn ein Linux vollständig eingerichtet i...