前端如何实现 [记住密码] 功能

前端如何实现 [记住密码] 功能

文章目录

我们在访问网站的时候,发现很多的登录页面都是有记住密码的功能的。

gitee码云的登录页面:

前端实现 [记住密码] 功能

一、核心实现原理:不是记住,而是“提示填充”

首先要澄清一个常见的误解:前端的“记住密码”功能通常并不直接存储你的密码明文。它的核心原理是:请求浏览器将账号密码保存到其密码管理器中,并在下次检测到对应登录表单时,自动或提示用户填充。

下图清晰地展示了这一核心流程:

服务器浏览器密码管理器登录表单用户服务器浏览器密码管理器登录表单用户首次登录与保存后续自动填充1. 输入账号密码,勾选“记住我”2. 提交表单,发送登录请求3. 返回登录成功响应4. 触发浏览器提示:“是否保存密码?”5. 用户点击“保存”6. 将账号、密码、站点关联加密存储7. 再次访问登录页8. 自动识别表单并填充已存信息9. 用户点击登录(或直接提交)10. 发送填充后的凭证完成登录

二、技术实现方案详解

方案一:依赖浏览器原生行为(最常用)

这是最标准、最安全的做法。浏览器的密码管理器会自动识别符合规范的登录表单。

1. 基础表单要求

<formid="login-form"method="post"><!-- 关键:input的type和name需规范 --><inputtype="text"name="username"id="username"autocomplete="username"><inputtype="password"name="password"id="password"autocomplete="current-password"><!-- “记住我”复选框 --><label><inputtype="checkbox"name="remember-me"id="remember-me"> 记住密码 </label><buttontype="submit">登录</button></form>

关键属性说明:

  • autocomplete:这是提示浏览器自动填充的关键属性usernamecurrent-password 是标准值。
  • type=”password”:浏览器通过此类型识别密码字段。
  • 规范的 name 属性:如 usernamepassword 等,能帮助浏览器更准确地识别。

2. 登录成功后的处理
当表单提交且服务器验证成功后,如果用户勾选了“记住我”,浏览器会自动弹出对话框,询问用户是否保存密码。这个提示是由浏览器控制的,网站无法强制触发。

方案二:前端持久化存储(需谨慎考虑)

有时需要实现“记住登录状态”而非让浏览器管理密码本身(例如保持用户一周内免登录)。这时会使用前端存储。

1. 实现示例:使用Cookie

functionhandleLogin(username, password, rememberMe){// 向服务器发送登录请求...if(loginSuccess && rememberMe){// 服务器在响应中设置一个长期的、HttpOnly的认证Token Cookie// 示例:Set-Cookie: session_token=abc123; Max-Age=604800; HttpOnly; Secure// 前端仅通过是否勾选“记住我”来影响服务器对Cookie有效期的设置}}

2. 实现示例:使用Web Storage(仅存储标识)

// 登录成功后if(rememberMe && loginSuccess){// 存储一个非敏感的、服务器颁发的Token(而非密码!) localStorage.setItem('auth_token', serverResponse.token); localStorage.setItem('username', username);// 仅用于显示,不用于认证}// 下次访问时检查 window.addEventListener('DOMContentLoaded',function(){const token = localStorage.getItem('auth_token');if(token){// 使用Token向服务器请求验证,获取登录态autoLoginWithToken(token);}});

三、安全考量与实践准则

记住密码功能在安全上如履薄冰,以下是必须遵守的准则:

安全风险错误做法正确实践
密码明文存储将密码存到 localStorage、Cookie 或全局变量绝不在前端持久化存储明文密码。让浏览器的密码管理器负责安全存储。
传输安全登录表单通过 HTTP 明文提交始终使用 HTTPS,确保凭证传输过程加密。
Cookie安全使用 Cookie 时未设置安全标志设置 HttpOnly(防XSS窃取)、Secure(仅HTTPS传输)、SameSite(防CSRF)属性。
会话管理过长的会话有效期“记住我”的会话应有过期时间(如7天、30天),并提供便捷的“退出所有设备”功能。

四、最佳实践总结

  1. 优先使用浏览器原生功能:对于“记住密码”,最安全的方式是让浏览器管理。确保你的登录表单语义清晰(规范的 autocompletetype)。
  2. 区分“记住密码”和“保持登录”
    • 记住密码:让浏览器保存凭证,下次自动填充。适用于个人设备。
    • 保持登录:在用户关闭浏览器再打开后,通过安全的Token自动登录。实现时服务器颁发一个有时效性的Token(如7天)。
  3. 给予用户控制权:在“账户设置”中提供“查看已保存设备”和“远程登出”的功能,增加用户安全感。
  4. 清晰的视觉提示:当密码被自动填充或用户处于“记住登录”状态时,应有明确的界面提示。
  5. 关键操作重新验证:即使用户处于“记住登录”状态,在进行支付、修改密码等敏感操作时,仍应要求重新输入密码或进行二次验证。

👉点击进入我的网站

Read more

VsCode和AI的前端使用体验:分别使用了Copilot、通义灵码、iflyCode和Trae

1、前言 大杂烩~每次开发一行代码,各个AI争先恐后抢着提供帮助 备注:四款插件都需要先去官网注册账号,安装好之后有个账号验证。 2、插件详解  2.1、AI分析的答案 * GitHub Copilot * 定位:老牌 AI 代码补全工具,深度集成于 VS Code,基于海量 GitHub 代码库训练,擅长代码片段生成和上下文补全。 * 基本使用:在代码编辑器中输入函数头或注释,自动生成后续代码。支持自动生成提交信息、调试建议和多文件上下文理解,但需手动选择文件。 * 功能特点:具有多语言支持、高准确性的特点,适用于复杂项目和全栈开发,能满足追求效率的企业团队在日常代码补全、快速原型开发中的需求。 * 注册地址:GitHub Copilot · Your AI pair programmer · GitHub * 通义灵码 * 定位:阿里推出的免费 AI

AIGC 与艺术创作:机遇

AIGC 与艺术创作:机遇

目录 一.AIGC 的崛起与艺术领域的变革 二.AIGC 在不同艺术形式中的应用 1.绘画与视觉艺术 2.音乐创作 三.AIGC 为艺术创作带来的机遇 1.激发创意灵感 2.提高创作效率 总结 在当今数字化时代,人工智能生成内容(AIGC)正以惊人的速度重塑着艺术创作的格局,为艺术家们带来了令人振奋的新机遇。 一.AIGC 的崛起与艺术领域的变革 随着人工智能技术的不断进步,AIGC 逐渐在艺术领域崭露头角。它依托强大的机器学习算法和深度学习模型,能够分析大量的艺术作品数据,并从中学习各种风格、技巧和表现形式。 例如,OpenAI 的 DALL・E 2 是一款强大的图像生成模型。艺术家可以输入描述 “一只穿着太空服的猫在月球上漫步”,DALL・E 2 就能生成一幅非常逼真且富有创意的图像。这一技术突破使得艺术创作不再局限于传统的手工绘制,而是可以通过算法来实现。艺术家们可以利用这些工具来快速探索不同的创意方向,

PaperRed——2026年AI论文写作、AI降重、降低aigc,免费查重的网站

PaperRed——2026年AI论文写作、AI降重、降低aigc,免费查重的网站

一、PaperRed高校合作查重系统——智能学术诚信守护者 核心科技,精准查重 依托第六代A-NLP自然语言处理技术,构建涵盖9亿篇文献的超大数据库,实现深度语义解析与精准查重,高效识别学术雷同片段,为学术成果原创性保驾护航。 全流程学术支持 * 智能查重:一键上传检测,快速定位重复内容,生成含溯源信息的详细报告; * 自动降重:AI智能改写优化,在降低重复率的同时,完整保留核心观点与表达逻辑; * AIGC辅助:支持AI生成内容的检测与针对性优化,适配学术领域新趋势与新要求; * 高效工具集:内置PPT生成、论文速成等实用功能,全方位提升学术创作效率。 高校合作优选 专为学术场景量身打造,覆盖论文、报告、课题材料等多类文件的检测需求,数据存储安全可靠,操作流程简洁便捷,已成为众多高校师生信赖的学术辅助工具。 二、PaperRed论文助手——精准查重,轻松降重 三版可选,满足全阶段学术需求 版本对比,一键甄选 专业版 * 价格:0元/字 * 数据库:涵盖14个(近5年文献资源) * 亮点:

在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

Mac Mini M4 配备了苹果自家研发的 M1/M2/M4 芯片,具有强大的处理能力,能够支持本地跑一些大模型,尤其是在使用如 Ollama、Llama、ComfyUI 和 Stable Diffusion 这类 AI 相关工具时,性能表现非常好。本教程将指导你如何在 Mac Mini M4 上本地部署并运行这些大模型,涵盖从环境搭建到使用的全流程。 一、准备工作 1. 确保系统更新 确保你的 macOS 版本已更新到最新的版本(例如 macOS 13.0 以上),这将确保兼容性和性能。 安装 Homebrew(macOS 包管理工具) Homebrew 是 macOS 上非常流行的包管理工具,它帮助你方便地安装各种软件。在终端中输入以下命令来安装