So verwenden Sie den Tencent-Schieberegler-Verifizierungscode im Vue3+Vue-cli4-Projekt

So verwenden Sie den Tencent-Schieberegler-Verifizierungscode im Vue3+Vue-cli4-Projekt

Einführung:

Im Vergleich zu herkömmlichen Bildverifizierungscodes bietet der Slider-Verifizierungscode folgende Vorteile:

  • Der Server muss die spezifische Überprüfung des Überprüfungscodes nicht überprüfen, der Server muss nur das Überprüfungsergebnis überprüfen.
  • Wir müssen die Implementierung des Verifizierungscodes weder verstehen, noch müssen wir ihn speziell implementieren.
  • Das Sicherheitsniveau des Slider-Verifizierungscodes ist wesentlich höher als das des herkömmlichen Verifizierungscodes.
  • ...

Da es im Internet und in den Tencent-API-Dokumenten an Informationen zur Anwendung des Slider-Verifizierungscodes von Tencent in der kombinierten API in Vue3 mangelt, wird dieses Tutorial bereitgestellt. Ich bin kein Vue-Experte und meine Kenntnisse von Vue beschränken sich nur auf die grundlegende Verwendung. Wenn Fehler vorhanden sind, weisen Sie mich bitte darauf hin.

Start:

Zuerst müssen wir zu Tencent Cloud gehen, um eine API zur Grafikverifizierung zu beantragen und unser eigenes Nutzungsszenario auszuwählen. Nach Abschluss der Schritte erhalten wir CaptchaAppId und AppSecretKey. Diese beiden Dinge sind die Parameter, die unser Server verwendet, um die Ergebnisse später zu überprüfen.

Um es in Vue3 zu verwenden, müssen Sie zuerst den Tencent-Verifizierungscode js in die index.html des öffentlichen Ordners importieren.

<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>

Binden Sie in der Komponente, die den Slider-Bestätigungscode verwenden muss, eine Methode für die Anmeldeschaltfläche. Und fügen Sie die folgenden beiden Felder ticket und randstr im Formularobjekt hinzu.

Hier ist mein Beispiel, das so geschrieben ist

Standard exportieren {
    Name: "Login",
    aufstellen() {
        const loginForm = reaktiv({
            Kontoname: '',
            KontoPasswort: '',
            Ticket: '',
            randstr: ''
        })
        zurückkehren {
            Anmeldeformular
        }
    }
}

Anmeldeschaltflächen-Bindungsmethode

Standard exportieren {
    Name: "Login",
    aufstellen() {
        const loginForm = reaktiv({
            Kontoname: '',
            KontoPasswort: '',
            Ticket: '',
            randstr: ''
        })
 
        const loginPost = () => {
 
            let captcha = neues Fenster.TencentCaptcha(config.app_id, res => {
                loginForm.randstr = res.randstr;
                loginForm.ticket = res.ticket;
 
                BenutzerAnmeldung(Anmeldeformular).dann(resp => {
 
                    wenn (bzw.Code === 200) {
                        //Logik nach erfolgreichem Login} else {
                        //Logik nach Login-Fehler}
                }).catch(() => {
                    ElMessage.error({
                        Meldung: ,Systemfehler! Bitte versuchen Sie es später noch einmal! '
                    })
                })
            })
            captcha.show();
        }
 
        zurückkehren {
            anmeldenPost,
            Anmeldeformular
        }
    }
}

Der obige Code ist in Vue geschrieben, implementiert jedoch nur den Vorgang, bei dem Benutzer den Bestätigungscode ausfüllen. Die spezifische endgültige Beurteilungslogik muss in unserem Backend implementiert werden. Wir verwenden Springboot auf dem Backend, um Verifizierungsvorgänge zu implementieren.

Zuerst müssen wir die Maven-Abhängigkeit von Tencent SDK einführen

<!-- Abhängigkeit vom Tencent SDK-Schieberegler-Verifizierungscode-->
<Abhängigkeit>
  <groupId>com.tencentcloudapi</groupId>
  <artifactId>tencentcloud-sdk-java</artifactId>
  <version>4.0.11</version>
</Abhängigkeit>

Wir erstellen eine neue Klasse im Utils-Paket.

öffentliche Klasse DescribeCaptchaResult {
    @Value("${Tencent.SecretId}")
    privater String secretId;
 
    @Value("${Tencent.SecretKey}")
    privater String geheimer Schlüssel;
 
    @Value("${Tencent.CaptchaAppId}")
    private int captchaAppId;
 
    @Value("${Tencent.AppSecretKey}")
    privater String appSecretKey;
 
    öffentliches JSONObject getTencentCaptchaResult(String ticket, String randstr, String userIp) {
        versuchen {
            // Instanziieren Sie ein Authentifizierungsobjekt. Die Parameter müssen im Tencent Cloud-Konto secretId und secretKey übergeben werden. Dabei ist auch auf die Vertraulichkeit des Schlüsselpaares zu achten. // Den Schlüssel erhalten Sie unter https://console.cloud.tencent.com/cam/capi. Credential cred = new Credential(secretId, secretKey);
            // Instanziieren Sie eine HTTP-Option, optional, Sie können HttpProfile überspringen, wenn keine besondere Anforderung besteht httpProfile = new HttpProfile();
            httpProfile.setEndpoint("captcha.tencentcloudapi.com");
            // Instanziieren Sie eine Client-Option, optional, Sie können ClientProfile überspringen, wenn keine besondere Anforderung besteht clientProfile = new ClientProfile();
            clientProfile.setHttpProfile(httpProfile);
            // Instanziieren Sie das Client-Objekt, um das Produkt anzufordern, clientProfile ist optional CaptchaClient client = new CaptchaClient(cred, "", clientProfile);
            //Instanziieren Sie ein Anforderungsobjekt. Jede Schnittstelle entspricht einem Anforderungsobjekt DescribeCaptchaResultRequest req = new DescribeCaptchaResultRequest();
            erfordert.setCaptchaType(9L);
            req.setTicket(Ticket);
            req.setRandstr(randstr);
            req.setUserIp(Benutzer-IP);
            req.setCaptchaAppId((lang) captchaAppId);
            req.setAppSecretKey(appSecretKey);
            // Die zurückgegebene Antwort ist eine Instanz von DescribeCaptchaResultResponse, die dem Anforderungsobjekt DescribeCaptchaResultResponse resp = client.DescribeCaptchaResult(req); entspricht.
            // Gib die Zeichenfolge im JSON-Format aus. return JSONObject.parseObject(DescribeCaptchaResultResponse.toJsonString(resp));
        } Fang (TencentCloudSDKException e) {
            neue ServiceException auslösen (z. B. getMessage());
        }
    }
}

Nachfolgend finden Sie eine Aufschlüsselung der für diese Klasse erforderlichen Parameter.

Parameter Analyse
geheimeID SecretId ist die API-Schlüssel-ID Ihres Tencent Cloud-Kontos (es wird empfohlen, zur Autorisierung ein Unterkonto zu verwenden)
geheimer Schlüssel SecretKey ist der API-Schlüssel Ihres Tencent Cloud-Kontos (es wird empfohlen, zur Autorisierung ein Unterkonto zu verwenden)
captchaAppId captchaAppId ist der von Ihnen beantragte API-Schlüssel für den Tencent-Verifizierungscode
appSecretKey appSecretKey ist der von Ihnen beantragte API-Schlüssel für den Tencent-Verifizierungscode
Ticket Ticket ist der Parameter, der zurückgegeben wird, nachdem der Verifizierungscode des Frontend-Schiebereglers verifiziert wurde
randstr randstr ist der Parameter, der nach der Überprüfung Ihres Front-End-Schieberegler-Verifizierungscodes zurückgegeben wird
Benutzer-IP userIp ist die von Ihrer Business-Schicht erhaltene IP
Nachdem die Parameter angegeben und gesendet wurden, werden Daten vom Typ DescribeCaptchaResultResponse zurückgegeben. Wir konvertieren sie zum Parsen in den JSONObject-Typ von FastJson. Die zurückgegebene Datenstruktur ist wie folgt:

{
"Antwort": {
  "Anforderungs-ID": "3b61a17b-cb38-470e-802c-b6242faf81ac",
  "CaptchaCode": 1,
  "CaptchaMsg": "OK",
  "Böse Stufe": 0,
  "GetCaptchaTime": 1583749870
},
"retcode": 0,
"retmsg": "Erfolg"
}

Weitere spezifische Parameter finden Sie in der Tencent-API-Dokumentation: https://cloud.tencent.com/document/product/1110/36926

Den Wert des CaptchaCodes habe ich hier ausgelesen. Wenn der Wert 1 ist, ist die Verifizierung des Verifizierungscodes erfolgreich. Wenn er nicht 1 ist, schlägt die Verifizierung fehl.

//Überprüfen Sie den Bestätigungscode JSONObject tencentCaptchaResult = captchaResult.getTencentCaptchaResult(ticket, randstr, clientIp);
 
int captchaCode = Integer.parseInt(tencentCaptchaResult.getString("CaptchaCode"));
 
 
wenn (CaptchaCode != 1) {
    throw new ServiceException("Fehler beim Verifizierungscode!");
}
//...Anschließende Business-Logik

Nachverfolgen

In Tencent Cloud können Sie für den Bestätigungscode auch weitere Dinge festlegen, z. B. das Thema des Bestätigungscodes, die Szenenkonfiguration des Bestätigungscodes, den Grad des böswilligen Abfangens des Bestätigungscodes usw. .

Sie können auch die Anzahl der Bestätigungscode-Anfragen im Hintergrund sehen

Ich bin der Meinung, dass Backend und Frontend weiter gekapselt werden können, um den Code prägnanter zu gestalten. Alibaba Cloud hat andere neue Bestätigungscodes, die ich noch nicht ausprobiert habe. Ich persönlich finde, dass der Bestätigungscode von Tencent ziemlich gut zu verwenden ist, aber die API-Dokumentation ist etwas dürftig und es gibt sehr wenige Informationen.

Dies ist das Ende dieses Artikels über die Verwendung des Tencent-Schieberegler-Verifizierungscodes im Vue3+Vue-cli4-Projekt. Weitere relevante Inhalte zum Vue Tencent-Schieberegler-Verifizierungscode finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue + Elementui realisiert die Überprüfung des Schieberegler-Puzzles durch Ziehen
  • Vue implementiert Slider-Verifizierung für Mobilgeräte
  • Vue implementiert Slider-Verifizierung beim Einloggen
  • Praxis der Integration von Vue mit Alibaba Cloud zur Slider-Verifizierung
  • Vue implementiert eine einfache Slider-Verifizierung
  • Verwenden Sie die Konva- und Vue-Konva-Bibliotheken, um die Drag-Slider-Verifizierungsfunktion zu implementieren
  • VUE-Zugriff auf die Tencent-Verifizierungscodefunktion (Schieberegler-Verifizierung) Memo
  • Vue implementiert die Drag-Slider-Verifizierungsfunktion (nur CSS+JS ohne Hintergrundverifizierungsschritte)
  • vue-cli benutzerdefinierte Direktive Direktive Validierungsschieberegler hinzufügen Beispiel
  • So kapseln Sie die Bildschieberegler-Verifizierungskomponente in Vue

<<:  So löschen Sie Standardformate und legen allgemeine Formate in CSS fest

>>:  Die grundlegende HTML-Syntax ist praktisch für diejenigen, die gerade erst anfangen, HTML zu lernen

Artikel empfehlen

Eine kurze Diskussion zu this.$store.state.xx.xx in Vue

Inhaltsverzeichnis Sehen Sie sich dies an.$store....

So implementieren Sie das Builder-Muster in Javascript

Überblick Das Builder-Muster ist ein relativ einf...

So installieren Sie Docker und Portainer in Kali

Mit dem Aufkommen von Docker haben sich viele Die...

Analyse der zum Ausführen von Docker erforderlichen Berechtigungen

Zum Ausführen von Docker sind Root-Rechte erforde...

Detaillierte Erläuterung des MySQL-Download- und Installationsprozesses

1: MySql herunterladen Offizielle Download-Adress...

XHTML-Tags haben ein schließendes Tag

<br />Ursprünglicher Link: http://www.dudo.o...

Wissen Sie, wie Sie mit Vue-Cropper Bilder in Vue zuschneiden?

Inhaltsverzeichnis 1. Installation: 2. Verwendung...

MySQL-Prozesssteuerung: IF()-, IFNULL()-, NULLIF()-, ISNULL()-Funktionen

In MySQL können Sie die Funktionen IF(), IFNULL()...

Miniprogramm zur Implementierung der Rechnerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Einführung in Linux-Umgebungsvariablen und Prozessadressraum

Inhaltsverzeichnis Linux-Umgebungsvariablen und P...