本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新

开发中,登录注册功能几乎是每个应用都必备的。传统方式需要用户手动输入账号密码,体验繁琐且容易忘记密码。

鸿蒙系统提供了密码自动填充服务(密码保险箱),让用户无需记住或手动输入密码,一键完成自动生成强密码、自动保存、自动填充。

一、密码保险箱

密码保险箱是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即可快速适配,就可以让应用的登录功能体验大幅提升,用户无需再为记住密码而烦恼!

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐