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

So ändern Sie die Zeichensatzkodierung in MySQL 5.5/5.6 unter Linux auf UTF8

1. Melden Sie sich bei MySQL an und verwenden Sie...

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

Zusammenfassung der DTD-Verwendung in HTML

DTD ist ein Satz grammatikalischer Regeln zur Ausz...

So implementiert Webpack das Caching statischer Ressourcen

Inhaltsverzeichnis Einführung Unterscheiden Sie z...

JavaScript implementiert eine verschiebbare Modalbox

In diesem Artikel wird der spezifische JavaScript...

Häufig verwendete JS-Funktionsmethoden im Frontend

Inhaltsverzeichnis 1. E-Mail 2. Mobiltelefonnumme...

Flex-Layout realisiert linken Textüberlauf und lässt rechte Textanpassung aus

Ich möchte eine Situation erreichen, in der die B...

Beispielcode zum Installieren der ASPNET.Core3.0-Runtime unter Linux

# Die folgenden Beispiele gelten für die x64-Bit-...

uniapp realisiert die Aufnahme-Upload-Funktion

Inhaltsverzeichnis uni-app Einführung HTML-Teil j...

Warum MySQL Repeatable Read als Standardisolationsebene wählt

Inhaltsverzeichnis Oracle-Isolationsebenen MySQL-...

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

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

Lösung zur Installation von OpenCV 3.2.0 in Ubuntu 18.04

Laden Sie opencv.zip herunter Installieren Sie di...

Vereinfachen Sie die komplexe Website-Navigation

<br />Das Navigationsdesign stellt eine der ...

Docker führt Vorgänge mit dem angegebenen Speicher aus

wie folgt: -m, --memory Speicherlimit, das Format...