📣 背景
我们在登录,输入账号密码后,通常会收到 要保存密码吗?
的提示,保存后我们可以在 chrome://password-manager/passwords
Google 密码管理工具中查看
Chrome 提供默认的密码管理工具
如何保存?
如果我们想在自己的网站登录时,保存信息到 Google 密码管理工具,该如何实现呢?
1 | <form method="get" action="#"> |
Credential Management API
保存密码
Chorme 提供 [Credential Management API](https://developer.mozilla.org/en-US/docs/Web/API/Credential_Management_API#credential_management_concepts_and_usage)
, 我们可以使用 PasswordCredential
对账号密码进行管理
1 | const cred = new PasswordCredential({ |
如上面的例子,我们点击 提交
按钮时,可以通过 navigator.credentials.store
保存起来
1 | submit.addEventListener('click', (e) => { |
获取密码
保存完密码后,我们可以通过 navigator.credentials.get
获取到密码,这是一个异步接口 (为什么是异步下文会提到)
1 | navigator.credentials |
需要注意的是,密码是明文
多组密码
如果保存了多组密码,那么在获取密码的时候会弹窗 登录身份
选择框,需要手动选择
选择后,如果绑定了指纹之类的,还会进一步进行安全验证
验证通过后,返回选择的密码,这也是为什么该接口是异步的原因
自动填充
在选择完密码后,我们还可以再进一步,将获取到的密码直接填充到表单上
一种是直接使用 <input/>
组件默认的浏览器行为进行填充
第二种就是在获取到密码后,直接设置
1 | navigator.credentials |