HarmonyOS 使用 UserAuthenticationKit 实现本地应用锁

应用锁不是再做一套账号系统

“心晴手记”是一款本地优先的心情日记。它没有账号和服务器,但用户仍可能希望避免别人拿到已解锁的手机后直接看到记录。

这个需求适合使用系统设备认证,而不是让应用自行保存一套密码。

系统认证的优势是:

  • 应用不接触用户的锁屏密码或生物特征模板;
  • PIN、人脸和指纹使用统一接口;
  • 认证 UI 与系统体验一致;
  • 凭据由系统安全环境管理。

华为官方对 User Authentication Kit 的定位也包括设备解锁、敏感操作授权和隐私内容访问。

一、只声明真正需要的权限

模块配置中声明设备认证权限,并说明使用原因:

{
   
   
  "requestPermissions": [
    {
   
   
      "name": "ohos.permission.ACCESS_BIOMETRIC",
      "reason": "$string:biometric_permission_reason",
      "usedScene": {
   
   
        "abilities": ["EntryAbility"],
        "when": "inuse"
      }
    }
  ]
}

对应文案应直接告诉用户触发条件和用途,例如:

仅在用户开启应用锁后,用于保护本机日记记录。

不要写“为了提供更好的体验”这种无法解释权限必要性的泛化文案。

当前项目不声明网络、位置、相机、麦克风、通讯录或泛存储权限。最小权限不仅有助于审核,也能让用户更容易理解应用的数据边界。

二、封装一个 Promise 风格的认证函数

业务页面不需要了解认证实例的全部细节,可以把结果收敛为 Promise<boolean>

import {
   
    userAuth } from '@kit.UserAuthenticationKit';

export function authenticate(title: string): Promise<boolean> {
   
   
  return new Promise<boolean>((resolve) => {
   
   
    try {
   
   
      const authParam: userAuth.AuthParam = {
   
   
        challenge: new Uint8Array([1, 2, 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值