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 相关文章推荐
Javascript 键盘keyCode键码值表
Dec 24 Javascript
jquery live()调用不存在的解决方法
Feb 26 Javascript
Node.js返回JSONP详解
May 18 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
Aug 15 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
详解react、redux、react-redux之间的关系
Apr 11 Javascript
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
Aug 22 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 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实现通用alert函数的方法
2015/03/11 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python 数据结构之旋转链表
2017/02/25 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
python配置文件写入过程详解
2019/10/19 Python
python 实现绘制整齐的表格
2019/11/18 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
java字符串格式化输出实例讲解
2021/01/06 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
银行批评与自我批评
2014/02/10 职场文书
太太口服液广告词
2014/03/20 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
法律意见书范文
2015/05/20 职场文书
大学生入党自传2015
2015/06/26 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
python 中yaml文件用法大全
2021/07/04 Python