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

CentOS8-Netzwerkkarten-Konfigurationsdatei

1. Einleitung CentOS8-Systemupdate, die neue Vers...

Grundlegender Installationsprozess von mysql5.7.19 unter winx64 (Details)

1. Herunterladen https://dev.mysql.com/downloads/...

Einführung in Fork in Multithreading unter Linux

Inhaltsverzeichnis Frage: Fall (1) Fork vor dem E...

Attribute und Verwendung von INS- und DEL-Tags

ins und del wurden in HTML 4.0 eingeführt, um Auto...

GZIP-Komprimierung Tomcat und Prozessdiagramm zur Verbesserung der Web-Leistung

1. Einleitung Ich habe vor Kurzem an einem Projek...

CSS3 zum Erzielen eines dynamischen Hintergrundverlaufseffekts

Beim Erlernen von CSS3 geht es mehr darum, sich m...

So ändern Sie das MySQL-Datenbankdateiverzeichnis in Ubuntu

Vorwort Der Ubuntu-Server des Unternehmens platzi...

Tiefgreifendes Verständnis der verschiedenen Sperren von MySQL

Inhaltsverzeichnis Schlossübersicht Sperrklassifi...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.19

In diesem Artikel wird das grafische Tutorial zur...

Sequenzimplementierungsmethode basierend auf MySQL

Das Team ersetzte den neuen Rahmen. Alle neuen Un...