当前位置:首页 > JavaScript

js实现记住密码

2026-03-15 19:57:19JavaScript

实现记住密码功能的方法

在JavaScript中实现记住密码功能通常涉及以下步骤:

使用浏览器本地存储

浏览器提供了localStoragesessionStorage两种存储方式。localStorage数据会长期保存,适合用于记住密码功能。

js实现记住密码

// 存储用户名和密码
function saveCredentials(username, password) {
    localStorage.setItem('username', username);
    localStorage.setItem('password', password);
}

// 获取存储的凭证
function getCredentials() {
    return {
        username: localStorage.getItem('username'),
        password: localStorage.getItem('password')
    };
}

// 清除存储的凭证
function clearCredentials() {
    localStorage.removeItem('username');
    localStorage.removeItem('password');
}

使用cookie存储

cookie是另一种存储方式,可以设置过期时间。

// 设置cookie
function setCookie(name, value, days) {
    let expires = "";
    if (days) {
        const date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

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

自动填充表单

在页面加载时检查是否有存储的凭证,并自动填充到表单中。

js实现记住密码

window.onload = function() {
    const credentials = getCredentials();
    if (credentials.username && credentials.password) {
        document.getElementById('username').value = credentials.username;
        document.getElementById('password').value = credentials.password;
        document.getElementById('remember').checked = true;
    }
};

表单提交处理

在表单提交时根据用户选择决定是否存储凭证。

document.getElementById('loginForm').addEventListener('submit', function(e) {
    e.preventDefault();
    const username = document.getElementById('username').value;
    const password = document.getElementById('password').value;
    const remember = document.getElementById('remember').checked;

    if (remember) {
        saveCredentials(username, password);
    } else {
        clearCredentials();
    }

    // 执行登录逻辑
});

安全注意事项

存储用户密码在客户端存在安全风险,建议采取以下措施:

  • 仅存储用户名,让用户重新输入密码
  • 使用token替代密码存储
  • 对存储的密码进行加密
  • 明确告知用户风险并获取同意
// 简单加密示例
function saveCredentials(username, password) {
    localStorage.setItem('username', username);
    localStorage.setItem('password', btoa(password)); // 使用base64编码
}

function getCredentials() {
    const password = localStorage.getItem('password');
    return {
        username: localStorage.getItem('username'),
        password: password ? atob(password) : null
    };
}

以上方法提供了实现记住密码功能的基本框架,实际应用中应根据具体需求和安全要求进行调整。

标签: 密码js
分享给朋友:

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…