• 登录记住密码


    目标:

    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天就好了
            }
        }
    };
  • 相关阅读:
    Android NDK 开发中 adb logcat 命令的使用
    android 工程里缺少 R.java 文件原因和解决方法
    用Linux命令行实现删除和复制指定类型的文件
    重载操作符与转换
    复制控制
    管理类的指针成员
    复制构造函数
    static类成员(变量和函数)
    lock failed, MQ already started 问题处理
    Mac无法启动RocketMQ,日志显示,runserver.sh: line 91: /Library/Internet: No such file or directory
  • 原文地址:https://www.cnblogs.com/ll15888/p/11398370.html
Copyright © 2020-2023  润新知