>》>》>》>》

登录记住密码

目标:

1.记住密码勾选,点登陆时,将账号和密码保存到cookie,下次登陆自动显示到表单内
2.不勾选,点登陆时候则清空之前保存到cookie的值,下次登陆需要手动输入

方法:

通过存/取/删cookie实现的;每次进入登录页,先去读取cookie,如果浏览器的cookie中有账号信息,就自动填充到登录框中,存cookie是在登录成功之后,判断当前用户是否勾选了记住密码,如果勾选了,则把账号信息存到cookie当中

手机号<input type="tel" placeholder="请输入手机号" v-model="username">
密码<input type="tel" placeholder="请输入密码" v-model="password">
<input type="checkbox" v-model="isChecked">记住密码
<a @click="login()">登录</a>
export default {
    data() {
        return {
            username: '', // 用户名
            password: '', // 密码
            isChecked: true // 记住密码
        }
    },

    // 页面加载调用获取Cookie值
    mounted() {
        this.getCookie();
    },
    methods: {
        // 登录按钮
        login() {
            // 判断复选框是否被勾选; 勾选则调用配置Cookie方法
            if (this.isChecked) { // 记住密码
                this.setCookie(this.username, this.password, 30); // 保存期限为30天
            } else {
                this.clearCookie(); // 清空 Cookie
            }
        },

        // 设置Cookie
        setCookie(username, password, exdays) { // 用户名, 密码, 保存天数
            let exdate = new Date(); // 获取时间
            exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays);
            // 字符串拼接cookie
            window.document.cookie = 'userName=' + username + ';path=/;expires=' + exdate.toGMTString();
            window.document.cookie = 'userPwd=' + password + ';path=/;expires=' + exdate.toGMTString();
        },

        // 读取Cookie
        getCookie() {
            // console.log(document.cookie);
            if (document.cookie.length > 0) {
                let arr = document.cookie.split('; '); // 这里显示的格式需要切割一下自己可输出看下
                for (let i = 0; i < arr.length; i++) {
                    let arr2 = arr[i].split('='); // 再次切割
                    // 判断查找相对应的值
                    if (arr2[0] == 'userName') {
                        this.usernameText = arr2[1]; // 保存到保存数据的地方
                    } else if (arr2[0] == 'userPwd') {
                        this.passwordText = arr2[1];
                    }
                }
            }
        },

        // 清除Cookie
        clearCookie() {
            this.setCookie('', '', -1); // 修改2值都为空,天数为负1天就好了
        }
    }
};

 

posted @ 2019-08-23 10:09  大、锤  阅读(407)  评论(0编辑  收藏  举报