当前位置:首页 > JavaScript

js实现记住密码

2026-03-15 19:57:19JavaScript

实现记住密码功能的方法

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

使用浏览器本地存储

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

// 存储用户名和密码
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;
}

自动填充表单

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

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();
    }

    // 执行登录逻辑
});

安全注意事项

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

js实现记住密码

  • 仅存储用户名,让用户重新输入密码
  • 使用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 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

节流js实现

节流js实现

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

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…