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学习5 jQuery事件模型
Feb 07 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
May 09 Javascript
原生Javascript和jQuery做轮播图简单例子
Oct 11 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
domReady的实现案例
Nov 23 Javascript
web.js.字符串与正则表达式操作
May 13 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
学习React中ref的两个demo示例
Aug 14 Javascript
通过JS深度判断两个对象字段相同
Jun 14 Javascript
vue前后分离调起微信支付
Jul 29 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
Dec 17 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判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
Javascript 布尔型分析
2008/12/22 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
go语言计算两个时间的时间差方法
2015/03/13 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
Python 多维List创建的问题小结
2019/01/18 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
导游词之青城山景区
2019/09/27 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸