vue项目中js-cookie的使用存储token操作

vue项⽬中js-cookie的使⽤存储token操作
1、安装js-cookie
# npm install js-cookie --save
# yarn add js-cookie
2、引⽤(需要的⽂件)
import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token'
export function getToken() {
(TokenKey)
}
export function setToken(tcuncuoken) {
return Cookies.set(TokenKey, token)
}
export function removeToken() {
ve(TokenKey)
}
3、浏览器cookie
4、也可以存储其他
const user = {
name: 'lia',
age: 18
}
Cookies.set('user', user)
const liaUser = JSON.('user'))
补充知识:vue 实现记住密码功能,⽤户信息在客户端加密存储
效果图:
功能详解:⽤户登录时,勾选记住密码,系统会将登录信息存⼊浏览器cookie中,下次登录时系统会⾃动将信息回写在输⼊框中(默认设置保存时间为3天,此处需要将密码进⾏加密处理,以提⾼安全性)
1.定义页⾯元素,v-model绑定变量
2.
3.引⼊vue的加密组件 CryptoJS,执⾏这条命令,系统会⾃动安装
npm install crypto-js
安装成功后,还需在登录页⾯引⼊组件
4.定义操作cookie的三个⽅法,后⾯需要⽤到,代码我贴出来
/************* Cookie start ***************/
clearCookie(cookieName) {
var exp = new Date();
exp.Time() - 1);
var cval = Cookie(cookieName);
if (cval != null) {
if (c_start != -1) {
c_start = c_start + cookieName.length + 1;
扫把头var c_end = kie.indexOf(";", c_start);
if (c_end == -1)
c_end = kie.length
return kie.substring(c_start, c_end))
}
}
return ""
},
/*************Cookie end***************/
5.在登录⽅法中判断记住密码是否有被勾选,如果有,则需要将账号密码信息存⼊cookie中,没有,则调⽤上⾯的⽅法清除cookie信息,关键步骤我已标记,登录⽅法在下⾯:
/************* 登录 start ***************/
signIn() {
let _this = this;
//判断是密码登录还是短信登录
if (_this.indexd == 0) {
_this.$refs['ruleForm'].validate((valid) => {
if (valid) {
//定义要存⼊cookie的对象
var accountInfo = "";
//拿到输⼊框中的密码,使⽤AES加密
var pwd = _this.form.pwd;
var newPwd = pt(pwd,'secret key 123');
//若勾选记住密码
if (_this.checked == true) {
console.log("选择记住密码,checked == true");
accountInfo = _this.form.name + "&" + newPwd; //将加密后的密码存⼊cookie对象中
_this.setCookie('accountInfo',accountInfo,1440*3); //传⼊账号名,密码,和保存天数3个参数(3天)
}else {
console.log("清空Cookie");
_this.clearCookie('accountInfo'); //清空Cookie
水下助推器}
let params = {
"username": _this.form.name,
"password": _this.form.pwd,
"vCode": _this.form.imgCode,
"loginToken": _this.loginToken,
};
post('/login/login', params).then(function (response) {
if (de == "20000") {
sessionStorage.setItem("v-token", response.ken);
zn21sessionStorage.setItem("v-menu", JSON.stringify(response.uters));
sessionStorage.setItem("v-user", JSON.stringify(response.data.data.currentUser));
//_this.makeRouters(response.uters);
_this.$message({
message: '登录成功',
type: 'success'
});
_this.clearCookie("login_token");//清除token
//平台
if (response.data.pe == 0) {
//平台
_this.$router.push('/index');
} else if (response.data.pe == 1 || response.data.pe == 3 || response.data.pe == 2) {          //渠道商
_this.$router.push('/operate');
} else {
//证券商
_this.$router.push('/AoInformationManagement')
}
} else if (de == "50000") {
_this.$message.warning(response.data.msg);
_this.changeCode();
}
mopu
}).catch(function (err) {
_this.$(err);
_this.changeCode();
})
}
});
}
}
5.选择记住密码,登录系统后,可以在调试模式中查看cookie信息,如图:
6.退出系统后,需要判断cookie有⽆账号信息,如果有,则进⾏回写,下⾯是我的⽅法:在钩⼦⽅法中调⽤下⾯的loadAccountInfo回写⽅法
//预读取cookie中⽤户信息
loadAccountInfo(){
let self = this;
//admin%26U2FsdGVkX1+/ZtAGWFVi37gNwA7TUZmQM+yazInCPxs%3D
let accountInfo = Cookie('accountInfo');
//如果cookie⾥没有账号信息
if(Boolean(accountInfo) == false){
console.log('cookie中没有检测到⽤户账号信息!');
return false;
} else{
//如果cookie⾥有账号信息
console.log('cookie中检测到账号信息!现在开始预填写!');
let userName = "";
纤维素纤维let passWord = "";
let index = accountInfo.indexOf("&");
userName = accountInfo.substring(0,index);
passWord = accountInfo.substring(index+1);  //拿到加密后的密码
//解密
var bytes = CryptoJS.AES.String(),'secret key 123');
//拿到解密后的密码(登录时输⼊的密码)
var newpassWord = Utf8);
self.form.name = userName;
self.form.pwd = newpassWord;
self.checked = true;
}
},
7.最后效果就是这样
以上这篇vue项⽬中js-cookie的使⽤存储token操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

本文发布于:2024-09-21 20:40:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/179143.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:密码   信息   登录
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议