Heim > Web-Frontend > js-Tutorial > Verwendung von Cookies in js, um die Funktion zur Passworterinnerung zu realisieren

Verwendung von Cookies in js, um die Funktion zur Passworterinnerung zu realisieren

高洛峰
Freigeben: 2016-12-09 13:23:56
Original
1564 Leute haben es durchsucht

Um die Funktion „Passwort merken“ zur Anmeldeoberfläche hinzuzufügen, dachte ich zunächst daran, Cookies im Java-Hintergrund aufzurufen, um das Kontopasswort zu speichern, ungefähr wie folgt:

HttpServletRequest request
HttpServletResponse response
Cookie username = new Cookie("username ","cookievalue");
Cookie password = new Cookie("password ","cookievalue");
response.addCookie(username );
response.addCookie(password );
Nach dem Login kopieren

Aber aus Sicherheitsgründen sind die meisten Passwörter, die wir im Hintergrund erhalten, durch MD5 in js verschlüsselter Chiffretext. Wenn Sie den Chiffretext in ein Cookie einfügen, hat dies keine Auswirkungen, wenn Sie ihn erhalten js;

Dann erwägen Sie den Zugriff auf Cookies in js. Der Code lautet wie folgt:

//设置cookie
var passKey = '4c05c54d952b11e691d76c0b843ea7f9';
function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + encrypt(escape(cvalue), passKey) + "; " + expires;
}
//获取cookie
function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==&#39; &#39;) c = c.substring(1);
    if (c.indexOf(name) != -1){
     var cnameValue = unescape(c.substring(name.length, c.length));
     return decrypt(cnameValue, passKey);
    }
  }
  return "";
}
//清除cookie
function clearCookie(cname) {
  setCookie(cname, "", -1);
}
Nach dem Login kopieren

setCookie(cname, cvalue, exdays) Die drei Parameter sind der gespeicherte Cookie-Name, der Cookie-Wert und die Cookie-Gültigkeitstage

Da Cookies keine Sonderzeichen wie Gleichheitszeichen, Leerzeichen und Semikolons enthalten dürfen, verwende ich beim Setzen die Funktion escape(), um die Zeichenfolge zu kodieren das Cookie und verwenden Sie unescape(), wenn Sie die Cookie-Funktionsdekodierung erhalten. Allerdings kodiert die Funktion escape() keine ASCII-Buchstaben und -Zahlen, sodass die im Cookie gespeicherte Kontonummer und das Passwort im Klartext gespeichert werden, was nicht sicher ist. Also ging ich online, um einen Algorithmus zum Verschlüsseln und Entschlüsseln von Zeichenfolgen zu finden. Dieser Algorithmus erfordert die Übergabe von zwei Parametern, einer Zeichenfolge, die verschlüsselt werden muss, und einem benutzerdefinierten Verschlüsselungsschlüssel passKey. Verwenden Sie encrypt(value, passkey) zum Verschlüsseln, wenn Sie ein Cookie setzen, und decrypt(value, passKey), um es zu entschlüsseln, wenn Sie ein Cookie lesen. Der Algorithmus ist am Ende dieses Artikels angehängt.

Aufruf zum Zugriff auf die Cookie-Methode:

1. Kontrollkästchen definieren

Merken das Passwort

2. Nachdem Sie festgestellt haben, dass das Kontopasswort korrekt eingegeben wurde, rufen Sie

3 auf. Stellen Sie fest, ob das Cookie vorhanden ist. Wenn Sie ein Konto und ein Passwort haben, füllen Sie automatisch
if($(&#39;#rememberMe&#39;).is(&#39;:checked&#39;)){
      setCookie(&#39;customername&#39;, $(&#39;#username&#39;).val().trim(), 7)
      setCookie(&#39;customerpass&#39;, $(&#39;#password&#39;).val().trim(), 7)
     }
Nach dem Login kopieren

$(function(){
 
 //获取cookie
 var cusername = getCookie(&#39;customername&#39;);
 var cpassword = getCookie(&#39;customerpass&#39;);
 if(cusername != "" && cpassword != ""){
  $("#username").val(cusername);
  $("#password").val(cpassword);
 }
}
Nach dem Login kopieren

Verwandte Etiketten:
js
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage