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 相关文章推荐
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
javascript 广告后加载,加载完页面再加载广告
Nov 25 Javascript
js 自动播放的实例代码
Nov 19 Javascript
浅析tr的隐藏和显示问题
Mar 05 Javascript
原生JavaScript实现合并多个数组示例
Sep 21 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
Feb 16 Javascript
关于JS变量和作用域详解
Jul 28 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 Javascript
Web安全之XSS攻击与防御小结
Dec 13 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中实现图片的锐化
2006/10/09 PHP
php 执行系统命令的方法
2009/07/07 PHP
php Smarty 字符比较代码
2011/02/27 PHP
PHP实现货币换算的方法
2014/11/29 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
理解Python中的绝对路径和相对路径
2017/08/30 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
简单实现python数独游戏
2018/03/30 Python
Python新手学习标准库模块命名
2020/05/29 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
keras多显卡训练方式
2020/06/10 Python
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
技术人员面试提纲
2013/11/28 职场文书
教师个人剖析材料
2014/02/05 职场文书
后备干部考察材料
2014/02/12 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
JS函数式编程实现XDM一
2022/06/16 Javascript