UmsetzungsideenWenn 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)
2. lokaler Speicher
3. Verwendung von Cookies
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 PasswortspeicherungPasswortverschlüsselungZur 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 SpeicherStandard 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; } } } }, }, }; ZusammenfassenDamit 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:
|
<<: 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
Inhaltsverzeichnis MySQL Inner Join, Left Join, R...
Inhaltsverzeichnis Migrationstools Anwendungstran...
Grundlegende Syntax: <Eingabetyp="versteck...
Dies ist das Installationstutorial von mysql5.7.1...
Inhaltsverzeichnis Vorwort 1. Warum brauchen wir ...
Vorwort Bei der Entwicklung eines Miniprogramms b...
#1. Herunterladen # #2. Entpacken Sie die Datei l...
1. Herunterladen 1. Klicken Sie auf den neuesten ...
Inhaltsverzeichnis Überblick Berechtigungen auf S...
1. Dreieck Rahmeneinstellungen Code: Breite: 300p...
Vorwort: Als Gigant in der IT-Branche ist Microso...
Installation und Konfiguration Die offizielle Web...
Vor einiger Zeit habe ich einen Blogbeitrag mit d...
Warum müssen wir SQL optimieren? Wenn wir SQL-Anw...
Datentyp: Die grundlegenden Regeln, die definiere...