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 相关文章推荐
js同时按下两个方向键
Dec 01 Javascript
通过Mootools 1.2来操纵HTML DOM元素
Sep 15 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 Javascript
windows下vue.js开发环境搭建教程
Mar 20 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
Jul 14 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
jQuery实现轮播图效果
Nov 26 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
python使用scrapy解析js示例
2014/01/23 Python
Python 备份程序代码实现
2017/03/06 Python
python基础之入门必看操作
2017/07/26 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
Python模块 _winreg操作注册表
2020/02/05 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
中学生爱国演讲稿
2013/12/31 职场文书
工作个人的自我评价
2014/01/14 职场文书
区域经理岗位职责
2015/02/02 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技