为了账号安全,请及时绑定邮箱和手机立即绑定

请问该怎么用cookie保存登陆状态的代码?

/ 猿问

请问该怎么用cookie保存登陆状态的代码?

素胚勾勒不出你 2019-09-20 15:15:52

用cookie保存登陆状态的代码


查看完整描述

4 回答

?
Qyouu
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION



查看完整回答
反对 回复 2019-09-22
?
交互式爱情

首先,介绍一下cookie的读写 :
document.cookie = “cookie名=” + 值 + “;expires=” + 有效时间;
其中expires的值表示cookie的有效时间.
//写入cookievar exp = new Date();
exp.setTime(exp.getTime() + 1000 * 60 * 60 * 24); //这里表示保存24小时document.cookie = "music_identify=" + id + ";expires=" + exp.toGMTString();1234

读取cookie : 因为document.cookie返回的是一个字符串,包含了当前域名储存在本地的所有cookie,所以,我们需要对这个cookie字符串进行分割,找出我们需要的信息,下面是一个用于获取cookie的函数:
/* 获取指定cookie */function getCookie(name) {
var strCookie = document.cookie; var arrCookie = strCookie.split("; "); for (var i = 0; i < arrCookie.length; i++) { var arr = arrCookie[i].split("="); if (arr[0] == name) return arr[1];
} return "";
}1234567891011

我们首先将document.cookie取得的cookie字符串进行拆分,得到一条一条的记录,然后我们在逐条以”=”进行拆分,在这一过程中,如果遇到传入的name值等于”=”号前面的字符串,说明我们要找的cookie记录就是那一个,随即返回这个字符串,否则的话返回”“空字符串.
介绍完读写之后,我们就可以开始模拟用户登录,并在cookie保存用户的登录信息了
/* Ajax登录 */function ajaxLogin(id, pass, classes) {
var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "pages/loginByNav.php?user_id=" + id + "&user_pass=" + pass, false);

xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { if (xmlhttp.responseText != 0) { var textArray = xmlhttp.responseText.split("|");
document.getElementById("inputBox").innerHTML = "<h3>欢迎回来," + textArray[1] + "</h3><img class='img-responsive img-circle' src='" + textArray[3] + "'>";
document.getElementById("user_name_nav").innerHTML = " " + textArray[1] + ",欢迎你!";
document.getElementById("user_img_nav").setAttribute("src", textArray[3]);
document.getElementById("user_info_nav").style.visibility = "";
document.getElementById("loginAndReg").style.visibility = "hidden";
document.getElementById("loginAndReg1").style.visibility = "hidden"; //增加的保存cookie代码
var exp = new Date(); var passHash = hex_md5(pass);
exp.setTime(exp.getTime() + 60 * 1000 * 60 * 24); //24小时
document.cookie = "music_identify=" + id + ";expires=" + exp.toGMTString();
document.cookie = "music_key_code=" + passHash + ";expires=" + exp.toGMTString(); //新增结束

player(textArray[4]);

} else { var login = document.getElementById("login_to");
login.setAttribute("class", classes);
login.innerHTML = "<i class='glyphicon glyphicon-log-in'></i> 登 录";
removeElem("warningTip"); var tips = "账号或密码错误!"; var form = document.getElementById("form1");
form.insertBefore(alertBox(tips, "warning"), form.childNodes[0]);
}
}
};
xmlhttp.send();
}




查看完整回答
反对 回复 2019-09-22
?
慕码人8056858

登录成功之后,把登录信息加密后保存在cookie里面;
然后建一个js文件,在这个文件里面做用户是否已登录的判断!如果登录了就直接显示该页面,如果没登录,就跳转回登录页面!
这个js文件在登录后才能看到的页面都做引用;



查看完整回答
反对 回复 2019-09-22
?
qq_笑_17

//登录按钮

$(".login-btn").click(function(){
$.cookie("pwd_key",$("#password").val());
$.cookie("username",$("#username").val());
// document.cookie="pwd_key="+$("#password").val();
});
//是否免登录
$("#rememberId").click(function(){
var flag = $("#rememberId").is(':checked');
if(flag){
//获取当前时间
var date=new Date();
var expireDays=30;
//将date设置为30天以后的时间
date.setTime(date.getTime()+expireDays*24*60*60*1000);
//将id和name两个cookie设置为30天后过期
document.cookie="username; pwd_key; expires="+date.toUTCString();
}
});





查看完整回答
反对 回复 2019-09-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信