JavaScript使用cookie实现记住账号密码功能


Posted in Javascript onApril 27, 2015

很多登录功能上都有个“记住密码”的功能,其实无非就是对cookie的读取。

下面展示这个功能的代码,原作者已无法考究。。。。

测试方法:直接输入账号密码,提交后,刷新页面,再输入同样的账号,就可以显示

<!DOCTYPE HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js COOKIE 记住帐号或密码</title>
<script type="text/javascript">
  window.onload=function onLoginLoaded() {
    if (isPostBack == "False") {
      GetLastUser();
    }
  }
   
  function GetLastUser() {
    var id = "49BAC005-7D5B-4231-8CEA-16939BEACD67";//GUID标识符
    var usr = GetCookie(id);
    if (usr != null) {
      document.getElementById('txtUserName').value = usr;
    } else {
      document.getElementById('txtUserName').value = "001";
    }
    GetPwdAndChk();
  }
  //点击登录时触发客户端事件
   
  function SetPwdAndChk() {
    //取用户名
    var usr = document.getElementById('txtUserName').value;
    alert(usr);
    //将最后一个用户信息写入到Cookie
    SetLastUser(usr);
    //如果记住密码选项被选中
    if (document.getElementById('chkRememberPwd').checked == true) {
      //取密码值
      var pwd = document.getElementById('txtPassword').value;
      alert(pwd);
      var expdate = new Date();
      expdate.setTime(expdate.getTime() + 14 * (24 * 60 * 60 * 1000));
      //将用户名和密码写入到Cookie
      SetCookie(usr, pwd, expdate);
    } else {
      //如果没有选中记住密码,则立即过期
      ResetCookie();
    }
  }
   
  function SetLastUser(usr) {
    var id = "49BAC005-7D5B-4231-8CEA-16939BEACD67";
    var expdate = new Date();
    //当前时间加上两周的时间
    expdate.setTime(expdate.getTime() + 14 * (24 * 60 * 60 * 1000));
    SetCookie(id, usr, expdate);
  }
  //用户名失去焦点时调用该方法
   
  function GetPwdAndChk() {
    var usr = document.getElementById('txtUserName').value;
    var pwd = GetCookie(usr);
    if (pwd != null) {
      document.getElementById('chkRememberPwd').checked = true;
      document.getElementById('txtPassword').value = pwd;
    } else {
      document.getElementById('chkRememberPwd').checked = false;
      document.getElementById('txtPassword').value = "";
    }
  }
  //取Cookie的值
   
  function GetCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
      var j = i + alen;
      //alert(j);
      if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break;
    }
    return null;
  }
  var isPostBack = "<%= IsPostBack %>";
   
  function getCookieVal(offset) {
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1) endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
  }
  //写入到Cookie
   
  function SetCookie(name, value, expires) {
    var argv = SetCookie.arguments;
    //本例中length = 3
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
  }
   
  function ResetCookie() {
    var usr = document.getElementById('txtUserName').value;
    var expdate = new Date();
    SetCookie(usr, null, expdate);
  }
</script>
</head>
<body>
<form id="form1">
 <div> 用户名:
  <input type="text" ID="txtUserName" onblur="GetPwdAndChk()">
  <input type="password" ID="txtPassword">
  密码:
  <input type="checkbox" ID="chkRememberPwd" />
  记住密码
  <input type="button" OnClick="SetPwdAndChk()" value="进入"/>
 </div>
</form>
</body>
</html>
Javascript 相关文章推荐
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 Javascript
推荐10 个很棒的 jQuery 特效代码
Oct 04 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
AngularJS 入门教程之事件处理器详解
Aug 19 Javascript
JavaScript中return用法示例
Nov 29 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
JS中的函数与对象的创建方式
May 12 Javascript
jQuery层叠选择器用法实例分析
Jun 28 jQuery
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 Javascript
使用console进行性能测试
Apr 27 #Javascript
浅谈javascript实现八大排序
Apr 27 #Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
Apr 27 #Javascript
jQuery插件Tmpl的简单使用方法
Apr 27 #Javascript
javascript关于运动的各种问题经典总结
Apr 27 #Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 #Javascript
javascript+html5实现仿flash滚动播放图片的方法
Apr 27 #Javascript
You might like
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
php使用GeoIP库实例
2014/06/27 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
python3访问sina首页中文的处理方法
2014/02/24 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
Python操作Excel的学习笔记
2021/02/18 Python
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
迪奥官网:Dior.com
2018/12/04 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
秋季运动会稿件
2014/01/30 职场文书
求职面试个人自我评价
2014/02/28 职场文书
安全标语大全
2014/06/10 职场文书
安全生产工作汇报
2014/10/28 职场文书
初中数学教学随笔
2015/08/15 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
Python实现生活常识解答机器人
2021/06/28 Python
用JS创建一个录屏功能
2021/11/11 Javascript