JS使用cookie保存用户登录信息操作示例


Posted in Javascript onMay 30, 2019

本文实例讲述了JS使用cookie保存用户登录信息。分享给大家供大家参考,具体如下:

通常cookie和session,是web开发中用于存储信息的对象,session存在于服务器的内存中,而cookie则是存在客户端,所以js可以直接操作cookie进行信息的存储和读取。

js存放cookie一般的写法,如:document.cookie="userName=admin";,如果是多个键值对:document.cookie="userName=admin; userPass=123";

下面是js操作cookie保存用户的登录信息:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript" type="text/javascript">
function addCookie(name,value,days,path){  /**添加设置cookie**/
  var name = escape(name);
  var value = escape(value);
  var expires = new Date();
  expires.setTime(expires.getTime() + days * 3600000 * 24);
  //path=/,表示cookie能在整个网站下使用,path=/temp,表示cookie只能在temp目录下使用
  path = path == "" ? "" : ";path=" + path;
  //GMT(Greenwich Mean Time)是格林尼治平时,现在的标准时间,协调世界时是UTC
  //参数days只能是数字型
  var _expires = (typeof days) == "string" ? "" : ";expires=" + expires.toUTCString();
  document.cookie = name + "=" + value + _expires + path;
}
function getCookieValue(name){ /**获取cookie的值,根据cookie的键获取值**/
  //用处理字符串的方式查找到key对应value
  var name = escape(name);
  //读cookie属性,这将返回文档的所有cookie
  var allcookies = document.cookie;
  //查找名为name的cookie的开始位置
  name += "=";
  var pos = allcookies.indexOf(name);
  //如果找到了具有该名字的cookie,那么提取并使用它的值
  if (pos != -1){                       //如果pos值为-1则说明搜索"version="失败
    var start = pos + name.length;         //cookie值开始的位置
    var end = allcookies.indexOf(";",start);    //从cookie值开始的位置起搜索第一个";"的位置,即cookie值结尾的位置
    if (end == -1) end = allcookies.length;    //如果end值为-1说明cookie列表里只有一个cookie
    var value = allcookies.substring(start,end); //提取cookie的值
    return (value);              //对它解码
  }else{ //搜索失败,返回空字符串
    return "";
  }
}
function deleteCookie(name,path){  /**根据cookie的键,删除cookie,其实就是设置其失效**/
  var name = escape(name);
  var expires = new Date(0);
  path = path == "" ? "" : ";path=" + path;
  document.cookie = name + "="+ ";expires=" + expires.toUTCString() + path;
}
/**实现功能,保存用户的登录信息到cookie中。当登录页面被打开时,就查询cookie**/
window.onload = function(){
  var userNameValue = getCookieValue("userName");
  document.getElementById("txtUserName").value = userNameValue;
  var userPassValue = getCookieValue("userPass");
  document.getElementById("txtUserPass").value = userPassValue;
}
function userLogin(){  /**用户登录,其中需要判断是否选择记住密码**/
  //简单验证一下
  var userName = document.getElementById("txtUserName").value;
  if(userName == ''){
    alert("请输入用户名。");
    return;
  }
  var userPass = document.getElementById("txtUserPass").value;
  if(userPass == ''){
    alert("请输入密码。");
    return;
  }
  var objChk = document.getElementById("chkRememberPass");
  if(objChk.checked){
    //添加cookie
    addCookie("userName",userName,7,"/");
    addCookie("userPass",userPass,7,"/");
    alert("记住了你的密码登录。");
    window.location.href = "http://www.baidu.com";
  }else{
    alert("不记密码登录。");
    window.location.href = "http://www.baidu.com";
  }
}
</script>
</head>
<body>
<center>
  <table width="400px" height="180px" cellpadding="0" cellspacing="0" border="1" style="margin-top:100px;">
    <tr>
      <td align="center" colspan="2">欢迎使用XXX管理系统</td>
    </tr>
    <tr>
      <td align="right">
        <label>用户名:</label>
      </td>
      <td align="left">
        <input type="text" id="txtUserName" name="txtUserName" style="width:160px; margin-left:10px;" />
      </td>
    </tr>
    <tr>
      <td align="right">
        <label>密 码:</label>
      </td>
      <td align="left">
        <input type="password" id="txtUserPass" name="txtUserPass" style="width:160px; margin-left:10px;" />
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
        <span style="font-size:12px; color:blue; vertical-align:middle;">是否记住密码</span>
        <input type="checkbox" id="chkRememberPass" name="chkRememberPass" style="vertical-align:middle;" />
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
        <input type="submit" id="subLogin" name="subLogin" value="登 录" onclick="userLogin()"/>
        <input type="reset" id="resetLogin" name="resetLogin" value="重 置" />
      </td>
    </tr>
  </table>
</center>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 使用个人心得
Feb 26 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
利用js 进行输入框自动匹配字符的小例子
Jun 29 Javascript
用javascript为页面添加天气显示实现思路及代码
Dec 02 Javascript
在JavaScript中模拟类(class)及类的继承关系
May 20 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 Javascript
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
vue实现购物车选择功能
Jan 10 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 Javascript
原生js实现自定义滚动条
Jan 20 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
May 30 #Javascript
Vue使用axios出现options请求方法
May 30 #Javascript
vue动态注册组件实例代码详解
May 30 #Javascript
实用的Vue开发技巧
May 30 #Javascript
vue-router的两种模式的区别
May 30 #Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 #Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
May 30 #Javascript
You might like
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP Cookie学习笔记
2016/08/23 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
validform表单验证的实现方法
2019/03/08 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python做量化投资系列之比特币初始配置
2018/01/23 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
就业自荐书
2013/12/05 职场文书
三方合作协议书范本
2014/04/18 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
大学教师个人总结
2015/02/10 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
行政处罚告知书
2015/07/01 职场文书
初中团委工作总结
2015/08/13 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS