登录的基本流程
首先把用户输入的用户名和密码发给后端
后端根据用户名和密码查询数据库,如果匹配成功则返回对应的数据给前端
然后将用户名和token存在cookie中,并跳转页面
在随后的每次请求中都会携带用户名与token,如果验证通过,则能获取数据库资源返回给用户。
记住密码功能
大体思路就是通过存/取/删cookie实现的,每次进入登录页,先去读取cookie,如果浏览器的cookie中有账号信息,就自动填充到登录框中,存cookie是在登录成功之后,判断当前用户是否勾选了记住密码,如果勾选了,则把账号信息存到cookie当中。
使用js-cookie:
js-cookie 是一个用来操作cookie的 简单、轻量级的javaScript API
import Cookies from 'js-cookie';
// 登录成功后 判断是否选择了勾选密码
if (isRemenber) {
//添加cookie
Cookies.set('userName', ruleForm.userName, {
expires: 30
})
//使用crypto-js进行加密(需要npm加载后引入) 并存储到cookie中 此处user123! 为秘钥
Cookies.set('userPwd', CryptoJS.AES.encrypt(ruleForm.password,'user123!'), {
expires: 30 // 存储30天
})
} else {
// 删除cookie
Cookies.remove('userName')
Cookies.remove('userPwd')
}
下次进来时判断cookie中的用户名和密码是否存在
const userName = Cookies.get('userName') ? Cookies.get('userName') : '';
const enPassword = Cookies.get('userPwd') ? Cookies.get('userPwd') : '';
if (enPassword) {
// 对密码进行解密
ruleForm.password CryptoJS.AES.decrypt(enPassword,'user123!').toString(CryptoJS.enc.Utf8);
// 将是否记住密码置为true
isRemenber = true;
} else {
ruleForm.password = '';
}