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
.imgbox{ Breite: 1200px; Höhe: 612px; Rand rechts...
Problembeschreibung (was ist Keep-Alive) Keep-Ali...
Das WeChat-Applet verwendet die Scroll-Ansicht, u...
Der Tomcat-Server ist ein kostenloser und quellof...
Lua installieren wget http://luajit.org/download/...
In diesem Artikelbeispiel wird der spezifische Co...
1. Einführung in das Docker-Maven-Plugin In unser...
Drei Möglichkeiten, CSS einzuführen 1. Inline-Sti...
Software für virtuelle Maschinen: VMware Workstat...
Erstellen Sie ein neues Projekt test1 auf Code Cl...
1. Wie entferne ich den leeren Bereich von einigen...
Inhaltsverzeichnis Platzhalter-Ersetzung Konsolen...
Hallo zusammen, als ich mir heute das HTML des We...
Detaillierte Erklärung und Zusammenfassung der UR...
Wenn Sie den vom Docker-Stack bereitgestellten Im...