前端如何实现 [记住密码] 功能
前端如何实现“记住密码”功能“记住密码”功能在现代 Web 应用中仍然非常常见但由于浏览器安全策略和用户隐私意识的提升实现方式已经从早期的“明文存 Cookie”演变为更安全、更符合规范的方案。下面是目前主流的几种实现方式从简单到推荐的完整说明1. 最常见但已不推荐的方式仅作了解方式用户名 密码同时存入 Cookie 或 localStorage// 登录成功后localStorage.setItem(username,username);localStorage.setItem(password,password);// 明文极度危险// 下次打开页面自动填充document.getElementById(username).valuelocalStorage.getItem(username)||;document.getElementById(password).valuelocalStorage.getItem(password)||;问题密码明文存储在客户端极易被窃取XSS、物理访问、开发者工具等localStorage 没有过期时间永久保留几乎所有安全扫描工具都会标记为高危漏洞结论2025 年已完全不建议使用这种方式。2. 当前最推荐的合规方案浏览器原生 记住我现代浏览器Chrome、Safari、Edge、Firefox都提供了密码管理器和自动填充功能前端只需要配合好即可实现“记住密码”。核心思路不自己存密码而是让浏览器记住密码。前端要做的事使用正确的表单结构让浏览器识别这是登录表单添加autocompleteon或更具体的属性提供“记住我”复选框但实际不存密码登录成功后浏览器会弹出“是否保存密码”的提示推荐的 HTML 结构formidloginFormmethodpostautocompleteondivlabelforusername用户名 / 邮箱/labelinputtypetextidusernamenameusernameautocompleteusernamerequired/divdivlabelforpassword密码/labelinputtypepasswordidpasswordnamepasswordautocompletecurrent-passwordrequired/divdivclassremember-meinputtypecheckboxidremembernameremembercheckedlabelforremember记住我下次自动登录/label/divbuttontypesubmit登录/button/form关键属性说明属性作用推荐值autocompleteusername告诉浏览器这是用户名/邮箱字段username / emailautocompletecurrent-password告诉浏览器这是当前登录密码current-passwordautocompleteon表单整体允许自动填充onnamepassword必须有 name浏览器才会识别为密码字段password浏览器行为用户第一次登录成功后浏览器通常会弹出“保存密码”的提示用户选择“保存”后下次访问相同域名时用户名/邮箱会自动填充密码字段会显示“使用保存的密码”或直接填充取决于浏览器设置“记住我”复选框的作用现在“记住我”更多是心理安慰 业务逻辑勾选了 → 后端返回更长的 session/token 有效期比如 30 天没勾选 → session 短比如 2 小时或浏览器关闭即失效前端不需要自己存密码只需把这个状态传给后端。3. 更现代的方案使用 Credential Management API推荐高级场景浏览器提供的Credential Management API允许网站主动读取/保存用户凭证。示例代码保存凭证asyncfunctionsaveCredential(username,password){if(!navigator.credentials)return;try{constcrednewPasswordCredential({id:username,password:password,name:username,// 可选显示在选择器中iconURL:/logo.png// 可选});awaitnavigator.credentials.store(cred);console.log(凭证已保存);}catch(err){console.error(保存凭证失败,err);}}自动获取保存的凭证asyncfunctionautoFillLogin(){if(!navigator.credentials)return;try{constcredawaitnavigator.credentials.get({password:true,mediation:optional// 可选显示选择器});if(credcred.typepassword){document.getElementById(username).valuecred.id;document.getElementById(password).valuecred.password;}}catch(err){console.log(获取凭证失败,err);}}// 页面加载时尝试自动填充window.addEventListener(load,autoFillLogin);支持情况2026 年Chrome / Edge完全支持Safari部分支持限制较多Firefox不支持或支持有限4. 总结2025–2026 年推荐做法对比方案安全性用户体验实现难度推荐指数备注明文存 localStorage/Cookie★☆☆☆☆★★★☆☆低不推荐高危漏洞浏览器原生自动保存推荐★★★★★★★★★★低★★★★★首选Credential Management API★★★★★★★★★☆中★★★★☆高级场景后端返回长效 token HttpOnly Cookie★★★★★★★★★☆中★★★★☆适合 App 端一句话结论现代 Web 应用中“记住密码”功能最好的实现方式是配合浏览器的密码管理器使用规范的表单结构 autocomplete 属性让浏览器来负责记住和填充密码前端只负责“记住我”状态的业务逻辑长 session / token。如果你想在项目中同时支持“记住我” “一键登录”可以告诉我你的技术栈React/Vue/纯 JS我可以给你更具体的完整代码示例。

相关新闻

查重太高?AI检测报警?别慌,百考通「降重+降AI」帮你轻松“洗稿”不翻车!

查重太高?AI检测报警?别慌,百考通「降重+降AI」帮你轻松“洗稿”不翻车!

论文写完,信心满满点开查重系统——结果重复率30%?再用AI检测工具一扫,系统直接标红“高度疑似AI生成”?瞬间心态崩了!其实你可能只是引用规范、逻辑清晰,甚至语言太“教科书式”了,反而被算法误…

2026/7/3 14:23:55 阅读更多 →
百考通AI文献综述:让学术研究,从“精准梳理“开始

百考通AI文献综述:让学术研究,从“精准梳理“开始

在学术研究的征途中,文献综述是每一位研究者必须跨越的关键环节。它不仅是论文的开篇基石,更是展现研究深度与学术视野的核心窗口。然而,面对"文献筛选耗时、逻辑脉络混乱、引文格式繁琐"等痛点,无数学生与研究者常常陷…

2026/7/3 14:23:58 阅读更多 →
MITSUBISHI三菱 RA60H3847M1-501 SMD 线性稳压器(LDO)

MITSUBISHI三菱 RA60H3847M1-501 SMD 线性稳压器(LDO)

特性 增强型MOSFET晶体管(Idd≈OAVds12.5V, VGd0V) 输出功率>60W,效率>40%Vo12.5V, VDD5V, Pin50mW 宽带频率范围:378-470MHz 金属屏蔽结构,使杂散发射的改进变得简单 模块尺寸:67x19.4x9.9 mm 通过设置栅极电压来调节静态漏电流,并利用…

2026/7/3 8:15:53 阅读更多 →

最新新闻

STM32F207ZG与25CSM04 Page EEPROM高速数据存储方案

STM32F207ZG与25CSM04 Page EEPROM高速数据存储方案

1. 项目背景与核心需求在嵌入式系统开发中,快速精确的数据检索一直是个关键挑战。传统EEPROM虽然能可靠存储数据,但受限于串行接口和页写机制,在大数据量场景下往往成为性能瓶颈。而25CSM04这款Page EEPROM与STM32F207ZG高性能MCU的组合&…

2026/7/4 0:34:42 阅读更多 →
2026视频去水印教程手机电脑免费方法与软件推荐

2026视频去水印教程手机电脑免费方法与软件推荐

日常整理学习素材、收藏参考内容时,我们常会遇到带平台标识的视频,不同的水印位置、不同的使用场景,适合的处理方式也不一样。本文整理了 2026 年实用的手机、电脑端免费处理方法,搭配常用工具介绍与合规提示,适合个人…

2026/7/4 0:32:41 阅读更多 →
[线性代数]正定矩阵

[线性代数]正定矩阵

题型:已知正定矩阵,求参数取值范围。步骤1:写出$A kE$的矩阵已知$A \begin{bmatrix} 0 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 0 \end{bmatrix}$单位矩阵$E \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \…

2026/7/4 0:30:41 阅读更多 →
你的Windows个人管家:用Win11Debloat打造专属系统体验

你的Windows个人管家:用Win11Debloat打造专属系统体验

你的Windows个人管家:用Win11Debloat打造专属系统体验 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cu…

2026/7/4 0:26:39 阅读更多 →
气候适配科技面料推荐程序,根据地域温湿度匹配透气保暖功能性服饰。

气候适配科技面料推荐程序,根据地域温湿度匹配透气保暖功能性服饰。

气候适配科技面料推荐程序 —— 地域温湿度 功能性服饰匹配一、实际应用场景描述在《时尚产业与品牌创新》课程中,功能性面料(Functional Fabrics) 是科技驱动品牌创新的核心赛道。全球气候变暖导致极端天气频发:- 2024 年夏季&a…

2026/7/4 0:22:37 阅读更多 →
明日方舟桌宠Ark-Pets:5分钟打造你的智能桌面伙伴

明日方舟桌宠Ark-Pets:5分钟打造你的智能桌面伙伴

明日方舟桌宠Ark-Pets:5分钟打造你的智能桌面伙伴 【免费下载链接】Ark-Pets Arknights Desktop Pets | 明日方舟桌宠 (ArkPets) 项目地址: https://gitcode.com/gh_mirrors/ar/Ark-Pets 还在寻找能让电脑桌面焕然一新的创意工具吗?Ark-Pets作为一…

2026/7/4 0:22:37 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻