Die Idee und der Prozess von Vue zur Realisierung der Funktion zum Speichern von Konto und Passwort

Die Idee und der Prozess von Vue zur Realisierung der Funktion zum Speichern von Konto und Passwort

Umsetzungsideen

Wenn der Benutzer beim Anmelden die Option „Angemeldet bleiben“ aktiviert, werden der Anmeldename und das Kennwort (verschlüsselt) im lokalen Cache gespeichert. Beim nächsten Laden der Anmeldeseite werden das gespeicherte Konto und das Kennwort (müssen entschlüsselt werden) automatisch abgerufen und in das Anmeldeeingabefeld angezeigt.

Es gibt drei Möglichkeiten, Kontokennwörter zu speichern:

1. sessionStorage (nicht empfohlen)

1). Nur in der aktuellen Sitzung gültig, wird nach dem Schließen des Browserfensters gelöscht.

2). Die Speicherdatengröße beträgt im Allgemeinen 5 MB

3). Keine interaktive Kommunikation mit dem Server

2. lokaler Speicher

1). Sofern Sie die Informationen im localStorage nicht aktiv löschen, bleiben sie immer vorhanden und bleiben auch dann noch vorhanden, wenn Sie das Browserfenster schließen und es das nächste Mal starten.

2). Die Speicherdatengröße beträgt im Allgemeinen 5 MB

3). Keine interaktive Kommunikation mit dem Server

3. Verwendung von Cookies

1). Sie können das Ablaufdatum manuell festlegen. Nach dem Ablaufdatum wird es ungültig. Es ist keine Ablaufzeit festgelegt und es wird nach dem Schließen des Browserfensters gelöscht

2). Die Speicherdatengröße beträgt im Allgemeinen 4 KB

3). Jede Anfrage wird an den Server gesendet

Hier stellen wir hauptsächlich die zweite und dritte Verwendungsmethode vor.

Funktionale Schnittstelle

<el-form :model="loginForm" :rules="Regeln" ref="loginForm" label-width="100px" class="loginForm demo-ruleForm">
  <!-- Konto -->
  <el-form-item label="Konto" prop="Benutzer-ID" autocomplete="ein">
    <el-input v-model="loginForm.userId" placeholder="Bitte geben Sie Ihre Kontonummer ein"></el-input>
  </el-form-item>
  <!-- Passwort -->
  <el-form-item label="Passwort" prop="Passwort">
    <el-input type="password" v-model="loginForm.password" placeholder="Bitte geben Sie Ihr Passwort ein" @keyup.enter="submitForm('loginForm')"></el-input>
  </el-form-item>
  <div Klasse="Tipp">
    <!-- Angemeldet bleiben -->
    <el-checkbox v-model="checked" class="rememberMe">Angemeldet bleiben</el-checkbox>
    <!-- Passwort abrufen -->
    <el-button type="text" @click="open()" class="forgetPw">Passwort vergessen? </el-button>
  </div>
  <!-- Anmelden -->
  <el-form-item>
    <el-button type="primary" @click="submitForm('loginForm')" class="submit-btn">Anmelden</el-button>
  </el-form-item>
</el-form>

Konkrete Umsetzung der Funktion zur Konto- und Passwortspeicherung

Passwortverschlüsselung

Zur Verbesserung der Sicherheit müssen Passwörter vor der Speicherung verschlüsselt werden. Es stehen viele Verschlüsselungsmethoden zur Verfügung. Ich habe mich hier für Base64 entschieden.

npm installiere Base64-Abhängigkeit

//Installieren Sie npm install --save js-base64
//Einführen const Base64 = require("js-base64").Base64

lokaler Speicher

Standard exportieren {
  Daten() {
    zurückkehren {
      Anmeldeformular: {
        Benutzer-ID: "",
        Passwort: "",
      },
      geprüft: falsch,
    };
  },
  montiert() {
    let Benutzername = localStorage.getItem("Benutzer-ID");
    if (Benutzername) {
      this.loginForm.userId = localStorage.getItem("Benutzer-ID");
      this.loginForm.password = Base64.decode(localStorage.getItem("password")); // Base64-Entschlüsselung this.checked = true;
    }
  },
  Methoden: {
    Formular absenden(Formularname) {
      dies.$refs[formName].validate((gültig) => {
        if (gültig) {
          /* ------ Speicherung von Account und Passwort ------ */
          wenn (dies.überprüft) {
            let password = Base64.encode(this.loginForm.password); // Base64-Verschlüsselung localStorage.setItem("userId", this.loginForm.userId);
            localStorage.setItem("Passwort", Passwort);
          } anders {
            localStorage.removeItem("Benutzer-ID");
            localStorage.removeItem("Passwort");
          }
          /* ------ HTTP-Anmeldeanforderung ------ */
        } anders {
          console.log("Fehler beim Senden!!");
          gibt false zurück;
        }
      });
    },
  },
};

Dieses Portal verwendet Cookies zur Optimierung der Browserfunktion. Informieren Sie sich, wie wir Cookies verwenden und wie Sie Ihre Einstellungen ändern können.

Standard exportieren {
  Daten() {
    zurückkehren {
      Anmeldeformular: {
        Benutzer-ID: "",
        Passwort: "",
      },
      geprüft: falsch,
    };
  },
  montiert() {
    dies.getCookie();
  },
  Methoden: {
    Formular absenden(Formularname) {
      dies.$refs[formName].validate((gültig) => {
        if (gültig) {
          /* ------ Speicherung von Account und Passwort ------ */
          wenn (dies.überprüft) {
            let password = Base64.encode(this.loginForm.password); // Base64-Verschlüsselung this.setCookie(this.loginForm.userId, password, 7);
          } anders {
            this.setCookie("", "", -1); // Ändere beide Werte so, dass sie leer sind und die Anzahl der Tage negativ ist: 1 Tag}
          /* ------ HTTP-Anmeldeanforderung ------ */
        } anders {
          console.log("Fehler beim Senden!!");
          gibt false zurück;
        }
      });
    },
    
    // Cookies setzen
    setCookie(userId, passwort, tage) {
      let date = new Date(); // Uhrzeit abrufen date.setTime(date.getTime() + 24 * 60 * 60 * 1000 * days); // Anzahl der zu speichernden Tage // ​​Cookie zur Zeichenfolgenverkettung
      fenster.dokument.cookie =
        "Benutzer-ID" + "=" + Benutzer-ID + ";Pfad=/;läuft ab=" + date.toGMTString();
      fenster.dokument.cookie =
        "Passwort" + "=" + Passwort + ";Pfad=/;läuft ab=" + date.toGMTString();
    },
    
    // Lies das Cookie und gib den Benutzernamen und das Passwort in das Eingabefeld zurück getCookie() {
      wenn (Dokument.Cookie.Länge > 0) {
        let arr = document.cookie.split("; "); //In unabhängige "Schlüssel=Wert"-Formen aufteilen for (let i = 0; i < arr.length; i++) {
          let arr2 = arr[i].split("="); // Erneut teilen, arr2[0] ist der Schlüsselwert, arr2[1] ist der entsprechende Wert
          if (arr2[0] === "Benutzer-ID") {
            this.loginForm.userId = arr2[1];
          } sonst wenn (arr2[0] === "Passwort") {
            this.loginForm.password = Base64.decode(arr2[1]); // Base64-Entschlüsselung this.checked = true;
          }
        }
      }
    },
  },
};

Zusammenfassen

Damit ist dieser Artikel über die Ideen und den Prozess der Implementierung der Anmelde- und Kennwortspeicherfunktion in Vue abgeschlossen. Weitere relevante Inhalte zur Implementierung der Anmelde- und Kennwortspeicherfunktion in Vue finden Sie in früheren Artikeln auf 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:
  • Beispielcode für die Anmeldung und Registrierung bei Vue Learning Road
  • Vue.js implementiert Funktionen für Benutzerkommentare, Anmeldungen, Registrierungen und Informationsänderungen
  • Detaillierte Erläuterung des Vue-Anmelderegistrierungsbeispiels
  • So registrieren Sie sich und bleiben bei Vue angemeldet
  • Beispielcode zur Implementierung einer Anmelde- und Registrierungsvorlage in Vue

<<:  Detaillierte Erklärung der Single-Choice- und Multiple-Choice-Auswahl im HTML-Select-Tag

>>:  Jenkins verpackt Microservices, um Docker-Images zu erstellen und auszuführen

Artikel empfehlen

Probleme und Lösungen beim Ersetzen von Oracle durch MySQL

Inhaltsverzeichnis Migrationstools Anwendungstran...

Einführung und Beispiele für versteckte Felder in HTML

Grundlegende Syntax: <Eingabetyp="versteck...

Mehrere Möglichkeiten zum Kapseln von Breadcrumb-Funktionskomponenten in Vue3

Inhaltsverzeichnis Vorwort 1. Warum brauchen wir ...

Implementierung der Miniprogramm-Aufzeichnungsfunktion

Vorwort Bei der Entwicklung eines Miniprogramms b...

MySQL5.6.31 winx64.zip Installations- und Konfigurationstutorial

#1. Herunterladen # #2. Entpacken Sie die Datei l...

MySQL MSI Installations-Tutorial unter Windows 10 mit Bildern und Text

1. Herunterladen 1. Klicken Sie auf den neuesten ...

So zeichnen Sie spezielle Grafiken in CSS

1. Dreieck Rahmeneinstellungen Code: Breite: 300p...

Einführung, Installation und Verwendung von Hyper-V (detaillierte Abbildungen)

Vorwort: Als Gigant in der IT-Branche ist Microso...

Tutorial zum Erstellen eines Zookeeper-Servers unter Windows

Installation und Konfiguration Die offizielle Web...

So finden Sie Informationen zu nicht festgeschriebenen Transaktionen in MySQL

Vor einiger Zeit habe ich einen Blogbeitrag mit d...

Zusammenfassung der Wissenspunkte zum B-Tree-Index bei der MySQL-Optimierung

Warum müssen wir SQL optimieren? Wenn wir SQL-Anw...

Vollständige Analyse der MySQL-Datentypen

Datentyp: Die grundlegenden Regeln, die definiere...