前端记住密码功能实现

最近在开发一个项目,登录模块需要用到记住密码功能,第一次用,寻觅了网上大量的帖子,虽然知道其原理了,但里面仍然有一些问题,涉及到安全。就是贮存到cookie中的密码容易泄露,不知道是不是所有的都是这样,还是我自己会出现这样的问题。有解决想法的朋友可以一起探讨。可以自己先用webstorm简单运行下这个页面。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset=utf-8>
    <meta http-equiv=x-ua-compatible content="ie=edge">
    <meta name=keywords content="">
    <meta name=description content="xxxxxxxxxxxxxxxxx平台">
    <title>用户登录 - xxxxxxxxxx</title>

    <script language="javascript" type="text/javascript">
        function checkInCorrect()      //判断用户名和密码是否为空
        {
            if (document.getElementById('username').value == "") {
                alert('请输入用户名!')
                document.getElementById('username').focus();
                return false
            }
            if (document.getElementById('password').value == "") {
                alert('请输入密码!')
                document.getElementById('password').focus();
                return false
            }
            else {
                saveInfo();
                return true;
            }
        }

        saveInfo = function () {
            try {
                var isSave = document.getElementById('remember_password').checked;   //保存按键是否选中
                if (isSave) {
                    var username = document.getElementById('username').value;
                    var password = document.getElementById('password').value;
                    if (username != "" && password != "") {
                        SetCookie(username, password);
                    }
                } else {
                    SetCookie("", "");
                }
            } catch (e) {

            }
        }

        function SetCookie(username, password) {
            var Then = new Date();
            Then.setTime(Then.getTime() + 1866240000000);
            document.cookie = "username=" + username + "%%" + password + ";expires=" + Then.toGMTString();
        }

        function GetCookie() {
            var nmpsd;
            var nm;
            var psd;
            var cookieString = new String(document.cookie);
            var cookieHeader = "username=";
            var beginPosition = cookieString.indexOf(cookieHeader);
            cookieString = cookieString.substring(beginPosition);
            var ends = cookieString.indexOf(";");
            if (ends != -1) {
                cookieString = cookieString.substring(0, ends);
            }
            if (beginPosition > -1) {
                nmpsd = cookieString.substring(cookieHeader.length);
                if (nmpsd != "") {
                    beginPosition = nmpsd.indexOf("%%");
                    nm = nmpsd.substring(0, beginPosition);
                    psd = nmpsd.substring(beginPosition + 2);
                    document.getElementById('username').value = nm;
                    document.getElementById('password').value = psd;
                    if (nm != "" && psd != "") {
                        // document.forms[0].checkbox.checked = true;
                        document.getElementById('remember_password').checked = true;
                    }
                }
            }
        }
    </script>
</head>
<body onLoad="document.getElementById('username').focus();GetCookie();">
<form>
    <!--onblur="GetPwdAndChk()"-->
    用户名:<input type="text" id="username">
    密 码:<input type="password" id="password">
    <input type="checkbox" id="remember_password"/>记住密码
    <input type="button" OnClick="checkInCorrect()" value="进入"/>
</form>
</body>
</html>


猜你喜欢

转载自blog.csdn.net/walk_man_3/article/details/80516548