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
In der Frontend-Entwicklung ist $ eine Funktion i...
Erstens kann JavaScript aus Sicherheitsgründen ni...
Die aktuellste Version von CentOS ist CentOS 8. A...
Bei der Arbeit an einem Projekt bin ich kürzlich ...
Die GROUP BY-Anweisung wird in Verbindung mit der...
Dieser Artikel beschreibt anhand von Beispielen d...
Inhaltsverzeichnis Problem 1: Zerstörung 1. Wie m...
Dieser Artikel zeichnet das Installationstutorial...
In der XHTML-Sprache wissen wir alle, dass das ul...
B-Baum-Index Verschiedene Speicher-Engines können...
Vorwort Ich bin bei der Arbeit auf folgende Situa...
Wenn Sie den Docker-Befehl zum ersten Mal verwend...
A. Installation des MySQL-Sicherungstools xtrabac...
Pseudo-Arrays und Arrays In JavaScript sind mit A...
Inhaltsverzeichnis 1. Was ist SVN? 2. Methoden zu...