vue3 登录记住密码 存到cookie里设置过期时间,同时账号密码通过des加密
import { encryptDes, decryptDes } from '@/js/des.js'
// des.js封装可查看上面vue DES 加密 crypto-js的使用
const userForm = reactive({
phone: "", // 手机号码
username: "", // 账号
password: "", // 密码
authCode: "", // 验证码
checked: false, // 记住密码
})
// 记住密码
onMounted(()=>{
getCookie()
})
function setCookie(username, pwd, exdays) {
let exdate = new Date()
exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays)
window.document.cookie = "userName" + "=" + username + ";Expires=" + exdate.toGMTString();
window.document.cookie = "userPwd" + "=" + pwd + ";Expires=" + exdate.toGMTString();
window.document.cookie = "isChecked" + "=" + userForm.checked + ";Expires=" + exdate.toGMTString();
}
function getCookie() {
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') {
userForm.username = decryptDes(arr2[1]) // 解密
} else if (arr2[0] == 'userPwd') {
userForm.password = decryptDes(arr2[1]) // 解密
} else if (arr2[0] == 'isChecked') {
userForm.checked = JSON.parse(arr2[1])
}
}
}
}
function clearCookie() {
setCookie("", "", -1)
}
function submit() {
// 登录
dataForm.value.validate((val, data) => {
if (val) {
if(userForm.checked){
setCookie(encryptDes(userForm.username), encryptDes(userForm.username), 7); // 加密
} else {
clearCookie()
}
if(isRegister.value) {
loginRegister()
} else {
loginPassword()
}
}
})
}