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屬性的原因