zoukankan      html  css  js  c++  java
  • vue+CryptoJS+cookie实现保存账号密码

    安装依赖

    npm i crypto-js --save

    HTML

    <el-input v-model="username" placeholder="用户名"></el-input>
    <el-input v-model="password" placeholder="密码"></el-input>
    <el-checkbox v-model="checked">记住密码</el-checkbox>

    JS

    mounted() {
        this.getCookie();
    },
    //表单提交方法
    submit( ){
        if (that.checked == true) {
            //传入账号,密码,保存天数
            that.setCookie(values.username, values.password, 7);
        } else {
            //清空Cookie
            that.clearCookie();
        }
    }
    //设置cookie方法
                setCookie(username, password, days) {
                    var text = CryptoJS.AES.encrypt(password, 'secret key 123'); //使用CryptoJS方法加密
                    var exdate = new Date(); //获取时间
                    exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * days); //保存的天数
                    //字符串拼接存入cookie
                    document.cookie = "username" + "==" + username + ";path=/;expires=" + exdate.toGMTString();
                    document.cookie = "password" + "==" + text + ";path=/;expires=" + exdate.toGMTString();
                },
    //读取cookie
                getCookie() {
                    if (document.cookie.length > 0) {
                        var arr = document.cookie.split('; '); //这里显示的格式需要切割一下自己可输出看下
                        for (var i = 0; i < arr.length; i++) {
                            var arr2 = arr[i].split('=='); //再次切割
                            //这里会切割出以username为第0项的数组、以password为第0项的数组,判断查找相对应的值
                            if (arr2[0] == 'adminusername') {
                                this.form.setFieldsValue({
                                    username: arr2[1],
                                });
                            } else if (arr2[0] == 'adminpassword') {
                                //拿到拿到加密后的密码arr2[1]并解密
                                var bytes = CryptoJS.AES.decrypt(arr2[1].toString(), 'secret key 123');
                                var plaintext = bytes.toString(CryptoJS.enc.Utf8); //拿到解密后的密码(登录时输入的密码)
                                this.form.setFieldsValue({
                                    password: plaintext,
                                });
                            }
                        }
                    }
                },
    //清除cookie
                clearCookie() {
                    this.setCookie("", "", -1); //账号密码置空,天数置0
                }
    有问题可直接留言,望各位与我都可以成为技术大牛。
  • 相关阅读:
    Hibernate笔记
    Struts2笔记(学struts2只需要这一篇文章)
    Linux开机启动和登录时各个文件的执行顺序
    Java虚拟机之垃圾回收算法思想总结
    码农雷林鹏:php概述
    码农雷林鹏:php教程
    雷林鹏分享:JDBC驱动类型
    码农雷林鹏教程分享:JDBC实例代码
    雷林鹏分享:JDBC环境设置
    雷林鹏分享:JDBC SQL语法
  • 原文地址:https://www.cnblogs.com/xhxdd/p/13999182.html
Copyright © 2011-2022 走看看