js记住密码怎么取到cookie的值

shenhaibb_ 2020-04-02 09:21:07
//选中记住密码触发事件,如果选中就赋值为on,否则赋值为null
function remember() {
//获取checkbox并判断其是否被选中
var rememberFlag = $("input[type='checkbox']").is(':checked');
if (rememberFlag) {
//显示一个带有指定消息和 确定取消按钮的对话框。
var confirmFlag = confirm("记住密码不宜在公共场所使用,您确定要记住密码?");
if (confirmFlag) {
//确认标志
$("#rememberMeId").val("1");
} else {
//取消标志
$("input[type='checkbox']").removeAttr('checked');
$("#rememberMeId").val("");
}
}
else{
//如果没选中设置rememberFlag为null
$("#rememberMeId").val("");
}
}
//获取cookie中保存的用户信息
$(function () {
//cookie数据保存信息格式是key=value;key=value;形式,loginInfo为保存在cookie中的key值
var str=getCookie("loginInfo");
str=str.substring(0,str.length);
var username=str.split("_")[0];
var password=str.split("_")[1];
alert(username);
alert(password);
//自动填充用户名和密码
$("#usernameId").val(username);
$("#passwordId").val(password);
});
//获取cookie
function getCookie(cookiename) {
//var name=cookiename+"=";
var str=document.cookie.split('_');//用“+”把字符串分割成几个段,然后遍历整个数组。
alert(str);
alert(str.length);
for(var i=0;i<str.length;i++){
var s=str[i];
alert(s);
/*while(s.charAt(0)==' ')//返回指定索引处的字符
s=s.substring(1);//提取字符串中介于两个指定下标之间的字符,包括开始处的字符,但不包括结束处的字符。
if(s.indexOf(name)!=-1)//返回某个指定的字符串值在字符串中首次出现的位置
return s.substring(name.length,s.length);*/
}
return "";
}



我想问一下,就是getCookie的返回值怎么写,因为我的username和password需要取值
下面的while方法看不懂,,我没开启的话还可以分别输出str[0]和str[1]
开启的话我的str[1],也就是我的密码直接没了
求大神指点
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jio可 2020-04-03
  • 打赏
  • 举报
回复
把账号密码存在cookie里面还是明文的,别人很容易就知道密码了。登录后用token校验是否登录不是更好。 既然知道cookie name 直接用let cookies = docuemnt.cookie.split(';') cookies.forEach(item => { if (item.indexOf('loginInfo') > -1) { let info = item.split('=')[1].split('_') console.log(info) } })
shenhaibb_ 2020-04-03
  • 打赏
  • 举报
回复
有人吗!help!!
shenhaibb_ 2020-04-03
  • 打赏
  • 举报
回复
引用 9 楼 jio可 的回复:
getCookie有返回值吗?或者是控制台错误了

大佬我按照你的代码修改了一下可以运行了
谢谢你鸭
jio可 2020-04-03
  • 打赏
  • 举报
回复
getCookie有返回值吗?或者是控制台错误了
shenhaibb_ 2020-04-03
  • 打赏
  • 举报
回复
if("1".equals(rememberMe)){
String loginInfo=admin_username+"_"+admin_password;
Cookie userCookie=new Cookie("loginInfo",loginInfo);
userCookie.setMaxAge(1*24*60*60);//存活期为一天
userCookie.setPath("/");
response.addCookie(userCookie);//添加userCookie到response中
}

这是我的后台代码
shenhaibb_ 2020-04-03
  • 打赏
  • 举报
回复
引用 5 楼 jio可 的回复:
这一段放循环里面就行了

if (item.indexOf('loginInfo') > -1) {
let info = item.split('=')[1].split('_')
console.log(info)
}

你好 我这样修改之后变成了这样 为什么还是运行不了呢 是不是获取username和password的那部分js哪里错了呀
$(function () {
//cookie数据保存信息格式是key=value;key=value;形式,loginInfo为保存在cookie中的key值
var str=getCookie("loginInfo");
str=str.substring(0,str.length-1);
var username=str.split("_")[0];
var password=str.split("_")[1];
alert("username"+username);
alert("password"+password);
//自动填充用户名和密码
$("#usernameId").val(username);
$("#passwordId").val(password);
});
function getCookie(cookiename) {
var str=document.cookie.split(';');//用“+”把字符串分割成几个段,然后遍历整个数组。
str.forEach(item=>{
if(item.indexOf('loginInfo')>-1){
var info=item.split('=')[1].split('_');
return info;
}
})
}
jio可 2020-04-03
  • 打赏
  • 举报
回复
这一段放循环里面就行了 if (item.indexOf('loginInfo') > -1) { let info = item.split('=')[1].split('_') console.log(info) }
shenhaibb_ 2020-04-03
  • 打赏
  • 举报
回复
引用 3 楼 jio可 的回复:
把账号密码存在cookie里面还是明文的,别人很容易就知道密码了。登录后用token校验是否登录不是更好。
既然知道cookie name
直接用let cookies = docuemnt.cookie.split(';')

cookies.forEach(item => {
if (item.indexOf('loginInfo') > -1) {
let info = item.split('=')[1].split('_')
console.log(info)
}
})

不好意思 我没有学习过ES6 我后期打算把密码用md5加密
我比较想修改我之前代码的while部分的
shenhaibb_ 2020-04-02
  • 打赏
  • 举报
回复

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧