我们在访问网站时,常会遇到登录页的'记住密码'选项。很多人误以为这是网站直接保存了密码,其实前端的'记住密码'核心原理是请求浏览器将账号密码保存到其密码管理器中,并在下次检测到对应登录表单时,自动或提示用户填充。
一、核心实现原理:不是记住,而是'提示填充'
首先要澄清一个常见的误解:前端的'记住密码'功能通常并不直接存储你的密码明文。它的核心流程如下:
- 首次登录与保存:用户输入账号密码,勾选'记住我',提交表单。服务器验证成功后,浏览器会弹出对话框询问是否保存密码。用户确认后,浏览器将账号、密码及站点关联加密存储。
- 后续自动填充:再次访问登录页时,浏览器识别到规范的表单结构,会自动识别并填充已存信息。用户点击登录(或直接回车)即可完成凭证发送。
二、技术实现方案详解
方案一:依赖浏览器原生行为(最常用)
这是最标准、最安全的做法。浏览器的密码管理器会自动识别符合规范的登录表单。关键在于 HTML 表单的结构和属性。
1. 基础表单要求
<form id="login-form" method="post">
<!-- 关键:input 的 type 和 name 需规范 -->
<input type="text" name="username" id="username" autocomplete="username">
<input type="password" name="password" id="password" autocomplete="current-password">
<!-- '记住我'复选框 -->
<label>
<input type="checkbox" name="remember-me" id="remember-me"> 记住密码
</label>
登录


