1. 程式人生 > >vue簡單實現記住密碼功能

vue簡單實現記住密碼功能

原理是在提交表單的時候把使用者名稱和密碼的值存入cookie中然後再次進入頁面時讀取cookie

html部分

<div class="log_form">
                <div class="log_form_biao">蚊子蚊子蚊子</div>
                <div  class="log_form_inp">
                    <div>
                        <i-input type="text" v-model="username" placeholder="請輸入使用者名稱" id="user">
                            <Icon type="ios-person-outline" slot="prepend"></Icon>
                        </i-input>
                    </div>
                    <div>
                        <i-input type="text" v-model="password" placeholder="請輸入密碼" id="pswd">
                            <Icon type="ios-locked-outline" slot="prepend"></Icon>
                        </i-input>
                    </div>
                    <div>
                        <Checkbox v-model="password_ji" class="password_ji">記住密碼</Checkbox>
                        <a href="./password_recovery.html" class="password_wji">忘記密碼?</a>
                    </div>
                </div>
                <div>
                    <i-button type="warning" @click="registration">註冊新機構</i-button>
                    <i-button type="success" class="login_bt" @click="login_submit">登入</i-button>
                </div>

            </div>

js部分

mounted(){
      this.getCookie();

  },

然後在methods中寫如下函式

//設定cookie
    setCookie(c_name, c_pwd, exdays) {
        var exdate = new Date();
        exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //儲存的天數
        document.cookie = "userName=" + c_name + ";path=/;expires=" + exdate.toLocaleString()
        document.cookie = "userPwd=" + c_pwd + ";path=/;expires=" + exdate.toLocaleString()
    },
    //獲取cookie
    getCookie: function() {
        if (document.cookie.length > 0) {
            var arr = document.cookie.split('; '); //這裡顯示的格式需要切割一下自己可輸出看下
            // console.log(arr)
            for (var i = 0; i < arr.length; i++) {
                var arr2 = arr[i].split('='); //再次切割
                //判斷查詢相對應的值
                if (arr2[0] == 'userName') {
                    this.username = arr2[1]; //儲存到儲存資料的地方
                } else if (arr2[0] == 'userPwd') {
                    this.password = arr2[1];
                }
            }
        }
    },
    //刪除cookie
    clearCookie: function() {
        this.setCookie("", "", -1); //修改2值都為空,天數為負1天就好了

    },

login_submit(){
        //判斷複選框是否被勾選 勾選則呼叫配置cookie方法
        if (this.password_ji == true) {
            console.log("checked == true");
            //傳入賬號名,密碼,和儲存天數3個引數
            this.setCookie(this.username, this.password, 7);
        }else {
          console.log("清空Cookie");
          //清空Cookie
          this.clearCookie();
        }
        
        //與後端請求程式碼,本功能不需要與後臺互動所以省略
        
        console.log("登陸成功");
        

    },

備註:測試的時候如果是本地測試不要用chome瀏覽器,否則讀取不了cookie因為httponly屬性的原因