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

高洛峰
풀어 주다: 2016-12-09 13:23:56
원래의
1533명이 탐색했습니다.

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

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. 체크박스 정의

비밀번호

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);
 }
}
로그인 후 복사


관련 라벨:
js
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿