vue 设置cookie,记住用户名、密码

一般如果登录频繁,想要记住用户名密码的话,可设置cookie,以下是登录方法与设置cookie,认真阅读哦,希望对你有帮助。
1、先献上一个简单的页面

<form class="form-signin" role="form" method="post" action="">
    <div class="input-group" style="display: inline-block;">
        <input type="text" class="srk" id="j_UserName" placeholder="用户名" required="">
     </div>
     <div class="input-group has-feedback" style="display: inline-block;">
       <input type="Password" class="srk ui-keyboard-input ui-corner-all" id="j_Password" aria-haspopup="true" role="textbox">
     </div>
     <div class="btnDiv" style="display: inline-block;position: absolute\9;padding-left: 1px;">
        <button id="form-ok" class="btndl" type="button" @click="login">&nbsp;&nbsp;</button>
        <button id="form-ok1" class="btndl" type="button" @click="register">&nbsp;&nbsp;</button>
      </div>
      <div style="margin: 20px 3px 10px 3px;">
        <input type="checkbox" value="remember-me-nm" name="savenm" id="savenm" class="check">
        <span class="song">记住用户名</span>
        <input type="checkbox" value="remember-me-pw" name="savepw" id="savepw" class="check">
        <span class="song">记住密码</span>
        <span class="song" style="color: red;padding-left: 12%;">{
    
    {
    
    message}}</span>
        </div>
 </form>

2、具体方法

methods:{
    
    
    //登录方法
    login(){
    
    
      //判断是否勾选记住密码的选项
       if (document.getElementById("savepw").checked == true) {
    
     //记住密码
              //传入账号名,密码,和保存天数3个参数
              this.setCookie($("#j_UserName").val(), $("#j_Password").val(), 7, true, true);
            } else {
    
    
              if (document.getElementById("savenm").checked == true) {
    
     //记住用户名
                this.setCookie($("#j_UserName").val(), "", 7, false, true);
              } else {
    
    
                console.log("清空Cookie");
                //清空Cookie
                this.clearCookie();
              }
            }
             let data = {
    
    
                'UserName': $("#j_UserName").val(), //用户名
                'Password': $("#j_Password").val() //密码               
              }            
              /*接口请求*/
              this.$http.post(this.GLOBAL.serverSrc + '/api/Login/LoginOn', data, {
    
    
                header: {
    
    },
                emulateJSON: true
              }).then((res) => {
    
    
                console.info(res);
              }).catch(err => {
    
    
                console.info(res);
             })
    }

   //设置cookie
      setCookie(c_name, c_pwd, exdays, check, checkNm) {
    
    
        var exdate = new Date(); //获取时间
        exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //保存的天数
        //字符串拼接cookie
        window.document.cookie = "UserName" + "=" + c_name + ";path=/;expires=" + exdate.toGMTString();
        if (document.getElementById("savenm").checked == true && document.getElementById("savepw").checked == false) {
    
    
          window.document.cookie = "Password" + "=" + "" + ";path=/;expires=" + exdate.toGMTString();
        }
        if (document.getElementById("savepw").checked == true) {
    
    
          window.document.cookie = "Password" + "=" + c_pwd + ";path=/;expires=" + exdate.toGMTString();
        }
        window.document.cookie = "checked" + "=" + check + ";path=/;expires=" + exdate.toGMTString();
        window.document.cookie = "checkedNm" + "=" + checkNm + ";path=/;expires=" + exdate.toGMTString();
      },
      //读取cookie
      getCookie: function() {
    
    
        if (document.cookie.length > 0) {
    
    
          var arr = document.cookie.split('; '); //这里显示的格式需要切割一下自己可输出看下
          for (var i = 0; i < arr.length; i++) {
    
    
            var arr2 = arr[i].split('='); //再次切割
            //判断查找相对应的值
            if (arr2[0] == 'UserName') {
    
    
              $("#j_UserName").val(arr2[1]); //保存到保存数据的地方
            } else if (arr2[0] == 'Password') {
    
    
              $("#j_Password").val(arr2[1]);
            } else if (arr2[0] == 'checked') {
    
    
              if (arr2[1] == "false") {
    
    
                document.getElementById("savepw").checked = false;
              } else {
    
    
                document.getElementById("savepw").checked = arr2[1];
              }
            } else if (arr2[0] == 'checkedNm') {
    
    
              document.getElementById("savenm").checked = arr2[1];
            }
          }
        }
      },
      //清除cookie
      clearCookie: function() {
    
    
        this.setCookie("", "", "", "", -1); //修改4值都为空,天数为负1天就好了
      }
}

猜你喜欢

转载自blog.csdn.net/weixin_41262185/article/details/102838348
今日推荐