JS中使用Cookie实现记住密码以及设置密码过期时间

简介: JS中使用Cookie实现记住密码以及设置密码过期时间

在JavaScript中,可以使用`document.cookie`来操作和获取cookie。


要记住密码,可以在用户登录成功后,设置一个带有用户名和密码的cookie,设置过期时间为一段较长的时间,比如一周。当用户再次访问网站时,可以先检查是否存在该cookie,如果存在则自动填充用户名和密码。


下面是一个示例代码:

// 设置cookie
function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = "expires=" + d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

// 获取cookie
function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) === ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) === 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

// 检查是否存在记住密码的cookie
function checkRememberMe() {
  var username = getCookie("username");
  var password = getCookie("password");

  if (username !== "" && password !== "") {
    // 填充用户名和密码
    document.getElementById("username").value = username;
    document.getElementById("password").value = password;
  }
}

// 登录按钮点击事件
function login() {
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  var rememberMe = document.getElementById("rememberMe").checked;

  // 处理登录逻辑...

  if (rememberMe) {
    // 设置记住密码的cookie
    setCookie("username", username, 7);
    setCookie("password", password, 7);
  } else {
    // 清除记住密码的cookie
    setCookie("username", "", -1);
    setCookie("password", "", -1);
  }
}

// 在页面加载时检查是否存在记住密码的cookie
window.onload = function() {
  checkRememberMe();
};
``` 

上面的代码中,`setCookie`函数用于设置cookie,`getCookie`函数用于获取cookie,`checkRememberMe`函数用于检查是否存在记住密码的cookie并填充用户名和密码,`login`函数是一个示例的登录函数,具体的登录逻辑需要根据实际情况进行修改。


在HTML中,可以使用以下代码来调用上述的JavaScript函数:

```html
<input type="text" id="username" placeholder="Username">
<input type="password" id="password" placeholder="Password">
<label><input type="checkbox" id="rememberMe"> Remember me</label>
<button οnclick="login()">Login</button> 

以上示例代码演示了如何使用cookie实现记住密码的功能。当用户选择记住密码时,用户名和密码会被保存到cookie中,并在下次访问网站时自动填充。当用户取消记住密码时,cookie会被清除。根据实际情况而定                              

相关文章
|
4天前
|
前端开发
用html+javascript打造公文一键排版系统3:获取参数设置、公文标题排版
用html+javascript打造公文一键排版系统3:获取参数设置、公文标题排版
|
2月前
|
前端开发 JavaScript 数据安全/隐私保护
前端JS正则校验密码之3种实现方式
这篇文章展示了三种使用JavaScript正则表达式来校验密码的方法,密码需要满足包含大写字母、小写字母、数字及特殊字符,并在8到16位之间,同时提供了示例代码和实现效果。
41 1
前端JS正则校验密码之3种实现方式
|
2月前
|
存储
【Azure APIM】APIM 策略语句如何来设置多个Cookie值让浏览器保存
【Azure APIM】APIM 策略语句如何来设置多个Cookie值让浏览器保存
|
2月前
|
存储 前端开发 JavaScript
揭秘!JavaScript本地存储的四大绝技:从Cookie到IndexedDB,让你的Web应用秒变数据存储高手,轻松应对各种挑战!
【8月更文挑战第4天】JavaScript为核心前端技术,提供多样本地存储方案以优化用户体验与减少服务器负载。首先,Cookie虽用于基本数据如登录状态,但受大小限制及安全性影响。接着,Web Storage中的LocalStorage持久存储不变数据,SessionStorage则限于单次会话。更进一步,IndexedDB作为全面数据库解决方案,支持复杂数据操作但使用较复杂。每种方式根据应用需求各有优势。
46 9
|
2月前
|
Java 应用服务中间件 nginx
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
|
2月前
|
JavaScript 前端开发
使用js对文本框设置字数限制
使用js对文本框设置字数限制
51 0
|
2月前
|
JavaScript 前端开发 Ubuntu
如何在 VPS 上安装 Express(Node.js 框架)并设置 Socket.io
如何在 VPS 上安装 Express(Node.js 框架)并设置 Socket.io
39 0
|
2月前
|
JSON JavaScript 前端开发
Vue项目使用Cookie,以Json格式存入与读取Cookie,设置过期时间以及删除操作
这篇文章介绍了在Vue项目中如何使用JavaScript操作Cookie,包括设置、读取、设置过期时间以及删除Cookie的方法。
111 0
|
2月前
|
JavaScript 前端开发 API
vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
这篇文章介绍了如何在Vue框架中将表单输入验证逻辑封装到一个JavaScript文件中,并通过正则表达式验证邮箱、身份证、手机号等信息,同时确保两次密码输入的一致性。
|
2月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)