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 相关文章推荐
Google AJAX 搜索 API实现代码
Nov 17 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
Apr 16 Javascript
js中继承的几种用法总结(apply,call,prototype)
Dec 26 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
jquery拖拽效果完整实例(附demo源码下载)
Jan 14 Javascript
Bootstrap和Java分页实例第二篇
Dec 23 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
Mar 14 Javascript
详解vue后台系统登录态管理
Apr 02 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 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和ACCESS写聊天室(四)
2006/10/09 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
python绘制多个曲线的折线图
2020/03/23 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
研究生自荐信
2013/10/09 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
安全责任书范本
2014/04/15 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
减负增效提质方案
2014/05/23 职场文书
银行业务授权委托书
2014/10/10 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
共青团员自我评价
2015/03/10 职场文书
银行培训心得体会范文
2016/01/09 职场文书
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript