name:cookie的名字
expires:cookie的存活时间
path:作用范围,保存位置;这个填不对的话会影响cookie的获取
使用方法
cookie赋值:
var userName="xiaoming";
setCookie("userName", userName);
cookie取值:
var cookie=getCookie("userName");
/**
- 默认的cookie写入方法
- @param name
- @param value
path路径很重要,要不取不到
*/
function setCookie(name, value, time) {
time = time || 0; //seconds有值就直bai接赋值,没有就设为du0
var expires = "";
if (time != 0 ) { //设置cookie生存时间
var date = new Date();
date.setTime(date.getTime()+(time*1000));
expires = "; expires="+date.toGMTString();
}
document.cookie = name+"="+escape(value)+expires+"; path=/"; //转码并赋zhi值
}
/**
- 获取Cookie中的值
- @param objName
- @returns
*/
function getCookie(objName){//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for (var i = 0; i < arrStr.length; i++) {
var temp = arrStr[i].split("=");
if (temp[0] == objName){
return decodeURI(temp[1]);
}
}
}
用户登录调整:为支持应用分布式部署 现登录流程调整如下:
1.用户账户密码登录
2.若登录成功,后台返回key 对应属性token
3.前端将token 写入cookie 属性名为:SESSIONKEY 只为属性token对应值
4.后端校验登录不从session 获取属性值 ,直接以cookie内SESSIONKEY 为key 从redis缓存中获取相关UserVO用户信息
只要cookie中的值path路径对,都会通过请求头传给后端
网友评论