Vue implementiert Beispielcode, um die Funktion zum Speichern von Passwörtern im Browser zu deaktivieren

Vue implementiert Beispielcode, um die Funktion zum Speichern von Passwörtern im Browser zu deaktivieren

Informationen finden

Einige im Internet gefundene Methoden:

  • Verwenden Sie autocomplete="off" (wird von vielen modernen Browsern nicht unterstützt)
  • Verwenden Sie autocomplete="new-password"
  • Fügen Sie vor dem Feld für das tatsächliche Konto und Kennwort ein Eingabefeld mit demselben Namen hinzu
  • Verwenden Sie das schreibgeschützte Attribut und entfernen Sie es, wenn der Fokus liegt
  • Initialisieren Sie das Typattribut des Eingabefelds auf Text und ändern Sie es bei Fokussierung in ein Passwort.
  • Verwenden Sie type="text", um den Inhalt des Textfelds manuell durch Sternchen "*" oder Punkte "●" zu ersetzen.

Implementierungsprozess

Verwendete Felder

Daten() {
 zurückkehren {
   Benutzername: '',
    Passwort: '',
  }
}

Da moderne Browser autocomplete="off" nicht mehr unterstützen, haben wir einfach auf das Einrichten des Kennwortfelds verzichtet und direkt autocomplete="new-password" verwendet. Wir haben getestet, dass es in Chrome (v88.0.4324.104), Edge (v88.0.705.56) und Firefox (v67) funktioniert, aber Firefox (v85) fordert uns weiterhin auf, uns das Kennwort zu merken.

<el-input v-model="Benutzername" Typ="Text" Name="Text" Platzhalter="Konto" Autovervollständigung="aus"><i Slot="Präfix" Klasse="el-input_icon el-icon-Benutzer"></i></el-input>

<el-input v-model="Passwort" type="Passwort" name="pwd" id="pwd" placeholder="Passwort" autocomplete="neues-Passwort"></el-input>

siehe:

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#browser_compatibility

Beim Lösen der Eingabeaufforderung der höheren Firefox-Version habe ich die Methoden 3/4/5 ausprobiert, aber die Ergebnisse waren nicht zufriedenstellend. Ich habe jedoch festgestellt, dass, solange der Wert im letzten Kennwortfeld von Firefox ein Sternchen „*“ oder ein kleiner Punkt „●“ ist, keine Aufforderung zum Speichern des Kennworts erfolgt (ich weiß nicht, ob das richtig ist, Sie können es selbst testen). Daher habe ich ein neues Feld pwdCover hinzugefügt, um das Eingabefeld zu verknüpfen, und das Kennwort verwendet, um den Wert tatsächlich zu übergeben.

Schablone

<el-input v-model="Benutzername" Typ="Text" Name="Text" Platzhalter="Konto" Autovervollständigung="aus"><i Slot="Präfix" Klasse="el-input_icon el-icon-Benutzer"></i></el-input>

<el-input v-model="pwdCover" type="Passwort" name="pwd" id="pwd" placeholder="Passwort" autocomplete="neues-Passwort"@input="setPassword"></el-input>
Skript
Daten() {
 zurückkehren {
   Benutzername: '',
    Passwort: '',
    pwdCover: '',
  }
},
Verfahren:
 anmelden() {
   dies.pwdCover = dies.pwdCover.replace(/\S/g, '●');
    // Anmeldeanforderung, bei Fehlschlag pwdCover wiederherstellen
    dieses.pwdCover = dieses.Passwort;
  },
  setzePassword(Wert) {
   dieses.Passwort = Wert;
  }
}

Ich habe es voller Zuversicht an meine Projektkollegen geschickt, aber es stellte sich als Fehlschlag heraus. Die Umgebung vor Ort war wie folgt:

  • Betriebssystem: Windows 7, Windows 10
  • Browser: Chrome v74.0.3729.108

Nachdem ich dieselbe Version von Google Chrome installiert hatte, stellte ich fest, dass das Problem immer noch nicht auftrat. Mein Betriebssystem ist Windows 10. Ich weiß nicht, was schief gelaufen ist. Am Ende habe ich Methode 6 gewählt.

Finale

Schablone

<el-form-item>
 <el-input v-model="Benutzername" Typ="Text" Name="Text" Platzhalter="Konto" Autovervollständigung="aus"><i Slot="Präfix" Klasse="el-input_icon el-icon-Benutzer"></i></el-input>
</el-form-item>
<el-form-item>
 <el-input v-model="pwdCover" type="text" name="pwd" id="pwd" placeholder="Passwort" autocomplete="off" @input="setPassword"><i slot="prefix" class="el-icon-lock"></i></el-input>
</el-form-item>

Skript

setzePassword(Wert) {
  let reg = /[0-9a-zA-Z]/g; // Nur Buchstaben und Zahlen sind erlaubtlet nDot = /[^●]/g; // Zeichen, die keine Punkte sindlet index = -1; // Position des neu eingegebenen Zeichenslet lastChar = void 0; // Neu eingegebenes Zeichenlet realArr = this.password.split(''); // Array des echten Passwortslet coverArr = val.split(''); // Textfeld zeigt Array des Passworts anlet coverLen = val.length; // Stringlänge des Textfeldslet realLen = this.password.length; // Länge des echten Passworts// Suche die neu eingegebenen Zeichen und PositionencoverArr.forEach((el, idx) => {
    wenn(nDot.test(el)) {
      Index = idx;
      letztesZeichen = el;
    }
  });
  //Überprüfen Sie, ob das Eingabezeichen der Spezifikation entspricht. Wenn nicht, entfernen Sie das Zeichen if(lastChar && !reg.test(lastChar)) {
    coverArr.splice(index, 1);
    this.pwdCover = coverArr.join('');
    zurückkehren;
  }
  wenn (realeLen < coverLen) {
    // Neue Zeichen hinzufügen realArr.splice(index, 0, lastChar);
  } sonst wenn (coverLen <= realLen && index !== -1) {
    // Zeichen ersetzen (wählen Sie ein oder mehrere Zeichen zum direkten Ersetzen aus)
    realArr.splice(index, realLen - (coverLen - 1), letztes Zeichen);
  } anders {
    // Zeichen löschen. Da val nur ● ist, gibt es keine Möglichkeit zur Übereinstimmung. Ich weiß nicht, ob die Zeichen am Ende oder in der Mitte gelöscht werden. Nach dem Löschen mehrerer Zeichen ist das Passwort schwer zu handhaben. Wir können es also nach der Cursorposition und der Länge von val beurteilen. let pos = document.getElementById('pwd').selectionEnd; // Cursorposition abrufen realArr.splice(pos, realLen - coverLen);
  }
  // Ersetze pwdCover durch
  this.pwdCover = val.replace(/\S/g, '●');
  dieses.Passwort = realArr.join('');
},

Dies ist das Ende dieses Artikels über den Beispielcode für Vue zur Implementierung der Funktion, mit der Browser daran gehindert werden, sich Passwörter zu merken. Weitere relevante Inhalte dazu, wie Vue Browser daran hindert, sich Passwörter zu merken, 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:
  • So implementieren Sie die Kennwort-Speicherfunktion im Front-End vue+elementUI
  • Einfache Implementierungsmethode der Vue+Element+Cookie-Passwort-Merkerfunktion
  • So verwenden Sie Cookies und Crypto-JS in Vue, um Passwörter zu speichern und zu verschlüsseln
  • Verwenden Sie sessionStorage, um die Kennwortfunktion in vue zu speichern
  • Das Vue-Projekt implementiert die Funktion zum Speichern von Passwörtern im Cookie (mit Quellcode)

<<:  Ein kurzer Vortrag über die halbsynchrone MySQL-Replikation

>>:  Ein verbessertes Screenshot- und Freigabetool für Linux: ScreenCloud

Artikel empfehlen

Lösung für leere Seite nach Vue-Verpackung

1. Lösung für das Problem, dass die Seite leer is...

Implementierung eines einfachen Whack-a-Mole-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

Erstellen und Verwenden von Docker-Datenvolumencontainern

Ein Datenvolumencontainer ist ein Container, der ...

Vue implementiert einen Einkaufswagen, der die Einkaufsmenge ändern kann

In diesem Artikel erfahren Sie, wie Sie mit Vue d...

Beispiel für die Verwendung von rem zum Ersetzen von px in einem Vue-Projekt

Inhaltsverzeichnis Werkzeug Installieren Sie das ...

Natives JS zum Erzielen von Book-Flipping-Effekten

In diesem Artikel wird ein mit nativem JS impleme...

Ändern Sie die Dateiberechtigungen (Eigentum) unter Linux

Linux und Unix sind Mehrbenutzer-Betriebssysteme,...

Die Lösung von html2canvas, dass Bilder nicht normal erfasst werden können

Frage Lassen Sie mich zunächst über das Problem s...

Hadoop 2.x vs. 3.x 22-Punkte-Vergleich, Hadoop 3.x Verbesserungen gegenüber 2.x

Fragen-Leitfaden 1. Wie toleriert Hadoop 3.x Fehl...

Das WeChat-Applet implementiert einen einfachen Rechner

Ein einfacher Rechner, der als Referenz in das We...

Ausführliche Erklärung zu MySQL vom Einstieg bis zum Aufgeben - Installation

Was Sie lernen werden 1. Softwareinstallation und...

Vue implementiert einen beweglichen schwebenden Button

In diesem Artikelbeispiel wird der spezifische Co...

So legen Sie die Breite und Höhe von HTML-Tabellenzellen fest

Beim Erstellen von Webseiten tritt häufig das Pro...