>  기사  >  웹 프론트엔드  >  JS에서 쿠키를 사용하여 비밀번호 기억 기능 구현

JS에서 쿠키를 사용하여 비밀번호 기억 기능 구현

高洛峰
高洛峰원래의
2016-12-09 13:23:561518검색

로그인 인터페이스에 비밀번호 기억 기능을 추가하기 위해 가장 먼저 생각한 것은 대략 다음과 같이 자바 백그라운드에서 쿠키를 호출하여 계정 비밀번호를 저장하는 것이었습니다.

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

하지만 보안상의 이유로 우리가 백그라운드에서 얻는 대부분의 비밀번호는 js의 MD5로 암호화된 암호문입니다. 암호문을 쿠키에 넣으면 들어가도 아무 효과가 없습니다.

그런 다음 js에서 쿠키에 액세스하는 것을 고려하십시오. 코드는 다음과 같습니다.

//设置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);
}

쿠키 ​​값, 쿠키 유효 기간

쿠키에는 다음과 같은 특수 문자가 포함될 수 없습니다. 등호, 공백 및 세미콜론을 사용하여 쿠키를 설정할 때 문자열을 인코딩하고 쿠키를 가져올 때 unescape() 함수를 사용합니다. 그러나 escape() 함수는 ASCII 문자와 숫자를 인코딩하지 않으므로 쿠키에 저장된 계좌번호와 비밀번호는 일반 텍스트로 저장되므로 안전하지 않습니다. 그래서 문자열을 암호화하고 해독하는 알고리즘을 찾기 위해 온라인에 접속했습니다. 이 알고리즘을 사용하려면 암호화해야 하는 문자열과 사용자 지정 암호화 키 passKey라는 두 개의 매개 변수를 전달해야 합니다. 쿠키를 설정할 때 암호화하려면 encrypt(value, passkey)를 사용하고, 쿠키를 읽을 때 복호화하려면 decrypt(value, passKey)를 사용하세요. 알고리즘은 이 글 끝에 첨부되어 있습니다.

쿠키 접근 방법 호출:

1. 체크박스 정의

8eb8cf987bb485dad35f006ce8e7a666 비밀번호

2. 계정 비밀번호가 올바르게 입력되었는지 확인한 후

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)
     }

을 호출합니다. 쿠키 유무 확인 계정과 비밀번호가 있는 경우 자동으로 입력

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.