Vue implementiert Bildverifizierungscode beim Anmelden

Vue implementiert Bildverifizierungscode beim Anmelden

In diesem Artikelbeispiel wird der spezifische Code des Bildüberprüfungscodes für die Anmeldung in Vue zu Ihrer Information angegeben. Der spezifische Inhalt ist wie folgt

Rendern

1. Erstellen Sie eine neue Vue-Komponente components/identify/identify.vue

<Vorlage>
  <div Klasse="s-canvas">
    <canvas id="s-canvas" :width="Inhaltsbreite" :height="Inhaltshöhe"></canvas>
  </div>
</Vorlage>
<Skript>
Standard exportieren {
  Name: 'SIdentify',
  Requisiten: {
    Identifizierungscode:
      Typ: Zeichenfolge,
      Standard: „1234“
    },
    SchriftgrößeMin: {
      Typ: Nummer,
      Standard: 28
    },
    SchriftgrößeMax: {
      Typ: Nummer,
      Standard: 40
    },
    HintergrundFarbeMin: {
      Typ: Nummer,
      Standard: 180
    },
    HintergrundFarbeMax: {
      Typ: Nummer,
      Standard: 240
    },
    FarbeMin:
      Typ: Nummer,
      Standard: 50
    },
    FarbeMax: {
      Typ: Nummer,
      Standard: 160
    },
    LinienfarbeMin: {
      Typ: Nummer,
      Standard: 40
    },
    ZeilenfarbeMax: {
      Typ: Nummer,
      Standard: 180
    },
    PunktFarbeMin: {
      Typ: Nummer,
      Standard: 0
    },
    PunktFarbeMax: {
      Typ: Nummer,
      Standard: 255
    },
    Inhaltsbreite: {
      Typ: Nummer,
      Standard: 112
    },
    Inhaltshöhe: {
      Typ: Nummer,
      Standard: 40
    }
  },
  Methoden: {
    // Erzeuge eine Zufallszahl randomNum (min, max) {
      gibt Math.floor(Math.random() * (max - min) + min) zurück
    },
    // Erzeuge eine zufällige Farbe randomColor (min, max) {
      var r = diese.randomNum(min, max)
      var g = diese.randomNum(min, max)
      var b = diese.randomNum(min, max)
      gibt 'rgb(' + r + ',' + g + ',' + b + ')' zurück
    },
    zeichneBild() {
      var Leinwand = document.getElementById('s-canvas')
      var ctx = canvas.getContext('2d')
      ctx.textBaseline = "unten"
      // Zeichne den Hintergrund ctx.fillStyle = this.randomColor(
        dies.backgroundColorMin,
        dies.backgroundColorMax
      )
      ctx.fillRect(0, 0, diese.Inhaltsbreite, diese.Inhaltshöhe)
      // Text zeichnen für (let i = 0; i < this.identifyCode.length; i++) {
        dies.drawText(ctx, dies.identifyCode[i], i)
      }
      dies.drawLine(ctx)
      dies.drawDot(ctx)
    },
    zeichneText (ctx, txt, i) {
      ctx.fillStyle = diese.randomColor(diese.colorMin, diese.colorMax)
      ctx.Schriftart =
        diese.randomNum(diese.fontSizeMin, diese.fontSizeMax) + 'px SimHei'
      var x = (i + 1) * (diese.Inhaltsbreite / (diese.IdentifyCode.Länge + 1))
      var y = diese.randomNum(diese.fontSizeMax, diese.contentHeight - 5)
      var deg = diese.randomNum(-30, 30)
      // Koordinatenursprung und Drehwinkel ändern ctx.translate(x, y)
      ctx.rotate(Grad * Math.PI / 270)
      ctx.fillText(txt, 0, 0)
      // Koordinatenursprung und Drehwinkel wiederherstellen ctx.rotate(-deg * Math.PI / 270)
      ctx.translate(-x, -y)
    },
    zeichneLinie (ctx) {
      // Interferenzlinien zeichnen für (let i = 0; i < 2; i++) {
        ctx.strokeStyle = diese.randomColor(
          diese.lineColorMin,
          diese.lineColorMax
        )
        ctx.beginPath()
        ctx.moveTo(
          diese.randomNum(0, diese.contentWidth),
          diese.randomNum(0, diese.contentHeight)
        )
        ctx.lineTo(
          diese.randomNum(0, diese.contentWidth),
          diese.randomNum(0, diese.contentHeight)
        )
        ctx.stroke()
      }
    },
    Punkt zeichnen (ctx) {
      // Interferenzpunkte zeichnen für (let i = 0; i < 20; i++) {
        ctx.fillStyle = diese.randomColor(0, 255)
        ctx.beginPath()
        ctx.arc(
          diese.randomNum(0, diese.contentWidth),
          diese.randomNum(0, diese.contentHeight),
          1,
          0,
          2 * Math.PI
        )
        ctx.fill()
      }
    }
  },
  betrachten:
    identifizierungscode () {
      dieses.drawPic()
    }
  },
  montiert () {
    dieses.drawPic()
  }
}
</Skript>
<Stil lang='less' scoped>
.s-Leinwand {
    Höhe: 38px;
}
.s-canvas Leinwand{
    Rand oben: 1px;
    Rand links: 8px;
}
</Stil>

Zweitens ist eine lokale Einführung erforderlich

<Vorlage>
 <span @click="refreshCode" style="cursor: pointer;">
  <s-identify :identifyCode="identifyCode" ></s-identify>
 </span>
</Vorlage>

<Skript>
// Importieren Sie die Bildüberprüfungscodekomponente import SIdentify von '@/components/identify'
Standard exportieren {
 Komponenten: { SIdentify },
 Daten() {
  zurückkehren {
   // Bildüberprüfungscode identifyCode: '',
   // Verifizierungscoderegeln identifyCodes: '3456789ABCDEFGHGKMNPQRSTUVWXY',
  }
 },
 Methoden: {
  // Bestätigungscode wechseln refreshCode() {
   this.identifyCode = ''
   dies.makeCode(diese.identifyCodes, 4)
     },
  // Erzeuge einen zufälligen Verifizierungscode makeCode(o, l) {
    für (sei i = 0; i < l; i++) {
      dieser.identifizierenCode += dieser.identifizierenCodes[
        Math.floor(Math.random() * (this.identifyCodes.length - 0) + 0)
      ]
    }
  },
 }
}
</Skript>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue - benutzerdefinierte Entwicklung - Komponente zur Überprüfung von verschiebbaren Bildern
  • So kapseln Sie die Bildschieberegler-Verifizierungskomponente in Vue
  • Vue implementiert die Codegenerierung zur Bildüberprüfung
  • Vue implementiert die Bildschiebeüberprüfung
  • Implementierung einer 60-Sekunden-Countdown-Funktion des Bildverifizierungscodes basierend auf Vue
  • VUE implementiert die Bildverifizierungscodefunktion
  • Vue+elementUI implementiert ein Beispiel für eine Formular- und Bild-Upload- und Überprüfungsfunktion
  • Detaillierte Erklärung zur Verwendung des Vue-Plug-Ins „Verifizierungscode (Identifizieren)“
  • vue+Element implementiert zufälligen Bestätigungscode für die Anmeldung
  • Vue3 realisiert rotierende Bildüberprüfung

<<:  Grundlegendes Lernen und Erfahrungsaustausch zu MySQL-Transaktionen

>>:  Detaillierte grafische Erklärung zum Einrichten von Routing und virtueller Maschinenvernetzung unter Linux

Artikel empfehlen

Anleitung zur Verwendung von env in vue cli

Inhaltsverzeichnis Vorwort Einführung-Offiziell B...

jQuery-Plugin zur Implementierung des sekundären Akkordeonmenüs

Dieser Artikel verwendet ein jQuery-Plugin, um ei...

So konfigurieren Sie Http, Https, WS und WSS in Nginx

Vorne geschrieben Im heutigen Internetbereich ist...

So verwenden Sie ein HTML-Formular mit mehreren Beispielen

Neun einfache Beispiele analysieren die Verwendun...

Über gutes Design

<br />Auf zehntausend Personen, die die Frag...

Implementierungsideen für die Synchronisierung von Docker-Registry-Images

Einleitung Bisher wurden unsere Docker-Images in ...

Docker stellt eine MySQL-Remoteverbindung bereit, um 2003-Probleme zu lösen

Herstellen einer Verbindung mit MySQL Hier verwen...

JavaScript-Makrotasks und Mikrotasks

Makrotasks und Mikrotasks JavaScript ist eine Sin...

TD-Breitenproblem beim Zusammenführen von TD-Zellen

Im folgenden Beispiel ist die Anzeige normal, wenn...

Webdesign-Tutorial (3): Designschritte und Denkweise

<br />Vorheriges Tutorial: Webdesign-Tutoria...