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

So setzen Sie das Root-Passwort in mysql8.0.12 zurück

Wenn Sie nach der Installation der Datenbank das ...

Tutorial zur Installation und Konfiguration von Hbase unter Linux

Inhaltsverzeichnis Hbase-Installation und -Konfig...

MySQL-Lernprogramm Clustered Index

Das Clustering ist eigentlich relativ zur InnoDB-...

So verwenden Sie Vue zum Implementieren von CSS-Übergängen und Animationen

Inhaltsverzeichnis 1. Der Unterschied zwischen Üb...

Mysql-Timeline-Daten, um die ersten drei Daten desselben Tages zu erhalten

Erstellen von Tabellendaten CREATE TABLE `praise_...

Vue realisiert einfachen Effekt des Lauflichts

In diesem Artikel wird der spezifische Code von V...