鸿蒙中 密码自动填充服务
摘要:鸿蒙系统密码保险箱功能为用户提供便捷的免密登录体验,支持自动生成强密码、保存账号信息和自动填充三大核心功能。开发者只需使用ArkUI标准控件TextInput并设置正确的InputType类型(如USER_NAME、Password等)即可快速适配。该功能通过系统级安全存储和统一身份认证(指纹/人脸/锁屏密码)保障数据安全,适用于登录、注册和账号查看三大场景,能显著提升用户登录体验,免除记忆
本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新
开发中,登录注册功能几乎是每个应用都必备的。传统方式需要用户手动输入账号密码,体验繁琐且容易忘记密码。
鸿蒙系统提供了密码自动填充服务(密码保险箱),让用户无需记住或手动输入密码,一键完成自动生成强密码、自动保存、自动填充。
一、密码保险箱
密码保险箱是HarmonyOS系统安全功能,为用户提供了便捷的免密登录体验。
| 功能 | 说明 |
|---|---|
| 自动生成强密码 | 注册时自动推荐高强度密码 |
| 自动保存 | 用户同意后自动保存账号密码 |
| 自动填充 | 下次登录时自动填充账号密码 |
| 身份认证 | 查看或使用密码时需验证锁屏密码/指纹/人脸 |
用户查看密码或使用密码进行自动填充,都需要经过身份认证,通过输入锁屏密码或验证指纹/人脸,确保只有用户本人才能访问密码。
二、使用场景
面向用户,密码保险箱支持三大场景:
2.1 登录场景
在密码保险箱已保存账号数据的情况下,提供自动填充服务。
| 情况 | 行为 |
|---|---|
| 已保存账号密码 | 自动填充,用户一键登录 |
| 手动输入新账号密码 | 自动询问是否保存本次输入的账号密码 |
2.2 注册场景
用户注册新用户时:
| 情况 | 行为 |
|---|---|
| 用户设置密码时 | 自动为用户推荐高强度密码建议 |
| 注册成功后 | 自动询问是否保存账号密码 |
2.3 查看账号场景
密码保险箱在系统设置菜单中,提供了本机全量账号查看能力。
查看路径:
设置 → 隐私和安全 → 密码保险箱
进入后需验证锁屏密码/指纹/人脸,验证通过后可查看已保存的所有账号密码数据。
三、架构介绍
密码保险箱基于关键资产存储能力,保存并保护用户的账号密码。
| 能力 | 说明 |
|---|---|
| 场景识别 | 根据用户操作自动识别登录、注册、修改密码等场景 |
| 免密登录 | 基于识别的场景,提供对应的免密登录服务 |
| 用户认证 | 填充时依托统一用户认证能力,进行身份信息认证 |
功能架构
密码保险箱
├── 关键资产存储能力(保存账号密码)
├── 场景识别(登录、注册、修改密码)
├── 免密登录服务(自动填充)
└── 统一用户认证(人脸/指纹/锁屏密码)
四、快速适配
密码自动填充服务依托ArkUI TextInput组件,提供了登录场景相关控件。开发者只需使用ArkUI标准控件,即可快速集成密码保险箱功能。
InputType类型说明
| InputType名称 | 描述 | 使用场景 |
|---|---|---|
| USER_NAME | 用户名输入模式 | 用于登录、注册等场景的用户名输入 |
| Password | 密码输入模式。支持数字、字母、下划线、空格、特殊字符。密码显示小眼睛图标,默认将文字变成圆点 | 用于登录、注册等场景的密码输入 |
| NUMBER_PASSWORD | 数字密码输入模式。仅支持输入数字。密码显示小眼睛图标,默认将文字变成圆点 | 用于登录、注册等场景的密码输入 |
| NEW_PASSWORD | 新密码输入模式 | 用于注册、修改密码等场景的新密码输入 |
说明:类型描述为Password的类型,均可用NUMBER_PASSWORD类型替代。
快速适配步骤
步骤1:适配登录场景
只需要将用户名的TextInput输入框的type属性设置为InputType.USER_NAME,将密码TextInput输入框的type属性设置为InputType.Password,即可使用密码保险箱的填充和保存功能。
// 登录页面适配
TextInput({ placeholder: '用户名' })
.type(InputType.USER_NAME)
.width('100%')
.margin({ top: 32, bottom: 8 })
TextInput({ placeholder: '密码' })
.type(InputType.Password)
.width('100%')
.margin({ bottom: 16 })
步骤2:适配注册场景(可选)
在应用的账号密码注册页,除设置用户名输入框外,将新密码TextInput输入框的type属性设置为InputType.NEW_PASSWORD,即可使用强密码填充功能。
// 注册页面适配
TextInput({ placeholder: '用户名' })
.type(InputType.USER_NAME)
.width('100%')
TextInput({ placeholder: '新密码' })
.type(InputType.NEW_PASSWORD) // 使用NEW_PASSWORD类型
.width('100%')
步骤3:自定义密码强度(可选)
如果应用对密码强度有特殊要求,可以根据为应用添加自动生成高强度密码的建议适配。
五、要求与限制
5.1 组件要求
| 要求 | 说明 |
|---|---|
| 组件类型 | 必须使用ArkUI组件TextInput |
| 输入框类型 | 必须正确指定InputType,才能使用密码自动填充服务 |
5.2 输入框类型与场景对应关系
| 输入框类型 | 适用场景 |
|---|---|
InputType.USER_NAME |
登录、注册等场景的用户名输入 |
InputType.Password |
登录、注册等场景的密码输入 |
InputType.NUMBER_PASSWORD |
数字密码输入场景(如支付密码) |
InputType.NEW_PASSWORD |
注册、修改密码等场景的新密码输入 |
六、用户操作流程
6.1 首次登录
用户打开应用登录页
↓
输入账号密码(或自动填充已有密码)
↓
点击登录
↓
系统弹窗询问"是否保存此账号密码?"
↓
用户点击"保存"
↓
账号密码保存到密码保险箱
6.2 后续登录
用户打开应用登录页
↓
点击用户名输入框
↓
系统推荐已保存的账号
↓
用户选择账号
↓
密码自动填充
↓
一键登录
6.3 注册场景
用户打开应用注册页
↓
输入用户名
↓
点击新密码输入框
↓
系统自动推荐高强度密码(如"Abc@123456")
↓
用户选择使用或手动输入
↓
注册成功
↓
系统弹窗询问"是否保存此账号密码?"
↓
用户点击"保存"
密码保险箱通过TextInput的InputType类型自动识别登录/注册场景,为用户提供免密登录体验,仅需在输入框上设置正确的InputType即可快速适配,就可以让应用的登录功能体验大幅提升,用户无需再为记住密码而烦恼!
更多推荐


所有评论(0)