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 相关文章推荐
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
JavaScript实现更改网页背景与字体颜色的方法
Feb 02 Javascript
JQuery中基础过滤选择器用法实例分析
May 18 Javascript
浅析BootStrap模态框的使用(经典)
Apr 29 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
详解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实现二维数组按某列进行排序的方法
2016/11/18 PHP
php实现socket推送技术的示例
2017/12/20 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
基于python实现聊天室程序
2018/07/27 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
python程序文件扩展名知识点详解
2020/02/27 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
中式面点餐厅创业计划书
2014/01/29 职场文书
商业活动邀请函
2014/02/04 职场文书
12月红领巾广播稿
2014/02/13 职场文书
法学自荐信
2014/06/20 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫