首页 > 其他分享 >深入探索鸿蒙Next密码自动填充服务:高级功能与适配场景

深入探索鸿蒙Next密码自动填充服务:高级功能与适配场景

时间:2024-11-06 22:09:42浏览次数:1  
标签:用户名 填充 鸿蒙 密码 适配 Next 输入框 登录 页面

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前 API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。

在当今数字化时代,密码安全是保障用户信息安全的重要防线。鸿蒙 Next 系统的密码自动填充服务不仅提供了便捷的登录体验,还具备一系列高级功能,以适应不同的应用场景和用户需求。今天,我们将深入探讨这些高级功能以及适配场景,为开发者提供全面的技术指导。

一、为应用添加自动生成高强度密码的建议

(一)默认强密码规则

当开发者未指定密码规则,或指定的规则不符合规范时,密码保险箱将依据默认规则生成强密码。默认规则下的强密码以字母开头,包含大小写字母和数字,长度固定为 16 位。这种默认设置旨在为用户提供一个具有较高安全性的密码生成方案,满足大多数常见场景的需求。例如,系统可能生成类似于“AbCdEfG12345678”这样的密码,其中包含了大写字母、小写字母和数字的组合,具有一定的复杂性,能够有效抵御常见的密码破解攻击。

(二)开发者可自定义的强密码规则

  1. 属性介绍
    开发者可以通过设置新密码输入框的 passwordRules 属性来指定强密码规则,强密码中必须包含大写字母、小写字母、数字三种字符,同时可以按照以下方式对强密码规格进行限定:

    • begin:表示生成的强密码首位的字符类型,可选值包括“upper”(以大写字母开头)、“lower”(以小写字母开头)、“digit”(以数字开头),若不填,则以任意字母或数字 0 - 9 开头。例如,设置“begin:[upper]”将确保生成的强密码以大写字母起始。
    • special:用于指定生成的强密码是否包含特殊字符。当设置为“yes”时,强密码中将至少包含一个特殊字符(如!@#$%^&*),且特殊字符不会出现在首位。例如,密码规则“special:[yes]”会使生成的密码更具复杂性。
    • len:表示强密码的长度,密码保险箱允许设定的长度范围为最小 12 位至最大 32 位。该属性提供了三个关键字用于描述长度,分别为“fixedlen”(固定长度)、“minlen”(最小长度)、“maxlen”(最大长度)。开发者可以根据具体需求灵活设置,如“len:[fixedlen:15]”表示生成固定长度为 15 位的强密码,“len:[minlen:13,maxlen:18]”则表示生成长度在 13 - 18 位之间随机的强密码。
  2. 样例说明
    以下是一些正确的自定义强密码规则样例及其释义:

强密码规则样例 规则释义
begin:[upper],special:[yes],len:[maxlen:32,minlen:12] 以大写字母开头,包含大小写字母、数字、特殊字符,长度为 12 - 32 之间(包含 12 和 32)的随机数值。
begin:[lower],special:[yes],len:[maxlen:14] 以小写字母开头,包含大小写字母、数字、特殊字符,长度为 14 - 32 之间(包含 14 和 32)的随机数值。
begin:[digit],special:[yes],len:[fixedlen:15] 以数字开头,包含大小写字母、数字、特殊字符,长度为 15 位。
  1. 错误用例
    同时,我们也需要注意避免一些错误的规则设置,以下是一些错误用例及原因分析:
强密码规则错误 错误原因
begin:[uppper] begin 属性的取值“upper”拼写错误。
began:[upper] begin 属性拼写错误。
len:[15] len 属性语法错误,未使用三种长度关键词。
len:[fixedlen:15,maxlen:18] len 属性语法错误,fixedlen 与 maxlen 不可混用。
len:[maxlen:15,minlen:18] len 属性参数值错误,maxlen 的取值不能小于 minlen。

二、系统可适配的场景

(一)不同输入框组合下密码保险箱的表现

  1. 两个输入框情况

    • 当页面上存在一个 Password / NEW_PASSWORD 类型输入框,且同时存在 USER_NAME、Email、PhoneNumber 类型输入框中的一种时,点击其中一个输入框,会触发账号密码填充提示;页面跳转时,自动弹出账号密码保存提示框。例如,在一个登录页面中,同时有用户名输入框(USER_NAME 类型)和密码输入框(Password 类型),用户点击用户名或密码输入框时,系统会自动检测并提示填充已保存的账号密码,登录成功跳转页面时,会询问用户是否保存账号密码。
    • 若页面上仅有两个 TextInput 输入框,且其中一个为 Password / NEW_PASSWORD 类型,另外一个为非密码类型时,同样会触发账号密码填充提示和保存提示框逻辑。比如在一个简单的密码修改页面,只有旧密码输入框(Password 类型)和新密码输入框(NEW_PASSWORD 类型),系统也能正确识别并提供相应的密码填充和保存功能。
  2. 多个输入框情况

    • 当页面上有多个输入框时,如果包含 InputType.USER_NAME / InputType.Email / InputType.PhoneNumber 其中一种或多种,以及 Password / NEW_PASSWORD 类型输入框,点击其中一个输入框,触发账号密码填充提示;页面跳转时,自动弹出账号密码保存提示框,且保存账号密码时,优先保存 USER_NAME 输入框的内容作为账户名。例如,在一个复杂的注册页面,有用户名输入框(USER_NAME 类型)、邮箱输入框(Email 类型)、密码输入框(Password 类型)和确认密码输入框(NEW_PASSWORD 类型),系统会根据用户操作准确提供密码填充和保存服务。

三、自定义布局下的适配建议

(一)登录、注册、修改密码页面的布局要求

  1. 登录页面
    应用在设置登录页面时,需要将“用户名/账号名”和“密码”放置在同一个界面,且用户名输入框应设置 type 属性为 InputType.USER_NAME,密码输入框应设置 type 属性为 InputType.Password。这样的布局设置能够确保密码自动填充服务准确识别并填充账号密码。例如,一个典型的登录界面可能包含一个用户名输入框和一个密码输入框,用户在打开登录页面时,系统能够自动检测到输入框类型,为用户提供便捷的密码填充服务。

  2. 注册页面
    注册页面需要“用户名/账号名”和“新密码”在同一个界面,并且新密码输入框的 type 属性设置为 InputType.NEW_PASSWORD。同时,如果应用对密码强度有特殊要求,可以根据开发者自定义的强密码规则进行设置。例如,在一个社交应用的注册页面,用户输入用户名后,在新密码输入框中可以根据设定的规则生成强密码,提高账号安全性。

  3. 修改密码页面
    修改密码页面则要求“用户名/账号名”、“旧密码”和“新密码”在同一个界面。旧密码输入框使用 type 属性为 InputType.Password,新密码输入框使用 type 属性为 InputType.NEW_PASSWORD。例如,在一个电商应用的修改密码界面,用户需要先输入用户名和旧密码进行身份验证,然后设置新密码,系统会根据输入框类型和密码规则提供相应的密码填充和更新功能。

(二)登录、注册失败时的处理

当应用登录或注册失败时,通过页面路由(router)跳转返回,建议应用将 enableAutofill 属性设置为 false,以避免保存错误信息。这是因为在登录或注册失败的情况下,用户输入的账号密码可能不正确或不完整,如果此时保存这些信息,可能会导致后续密码自动填充出现问题,甚至可能引发安全隐患。例如,在一个金融应用中,如果用户输入错误的账号密码导致登录失败,应用应在返回登录页面时将 enableAutofill 属性关闭,防止错误的账号密码被保存到密码保险箱中。

(三)将导致功能受限的布局(举例说明)

  1. 用户名、密码不在同一界面
    如果登录页面中用户名和密码分布在不同的界面,密码自动填充服务将无法正常工作。例如,某些应用可能将用户名输入放在一个页面,点击下一步后才显示密码输入页面,这种布局不符合密码自动填充服务的要求,无法实现自动填充功能。

  2. 验证码登录
    对于验证码登录的情况,如果页面上没有传统的用户名和密码输入框,而是通过验证码进行登录验证,密码自动填充服务不支持这种登录方式。例如,一些网站为了提高安全性,采用短信验证码登录,此时密码自动填充服务无法发挥作用。

  3. 注册页面布局不合理
    在注册页面,如果用户名和新密码不在同一界面,或者缺少必要的输入框类型,如只有用户名和其他非密码相关输入框,将无法使用强密码填充功能。例如,一个应用的注册页面只显示了用户名输入框和一些个人信息输入框,没有新密码输入框,那么就无法为用户提供强密码生成和填充服务。

通过对鸿蒙 Next 密码自动填充服务高级功能和适配场景的深入探索,我们可以看到该服务在提供强大功能的同时,也需要开发者在应用设计和开发过程中遵循一定的规范和建议,以确保密码自动填充服务的正常运行和用户体验的优化。希望本文能够帮助大家更好地利用这一服务,为用户打造更加安全、便捷的应用环境。

标签:用户名,填充,鸿蒙,密码,适配,Next,输入框,登录,页面
From: https://www.cnblogs.com/samex/p/18531161

相关文章

  • 鸿蒙 Next 密码自动填充服务实战:构建安全登录模块
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在当今数字化......
  • 鸿蒙Next如何接入微信支付
    大家好,这是我工作中接触到的鸿蒙Next接入微信支付,有使用到,分享给大家,轻松便捷前提:你已有鸿蒙版本的微信,并且微信余额或绑定银行卡有钱,因为内测的微信暂不支持收红包和转账,2.你的应用已有安卓或IOS端的微信支付,否则的话,工作量将不止如此正文:首先需要你公司这边去申请开通鸿蒙......
  • Next 设置字体文件cdn 或者本地
    @font-face{font-family:'font-ali-bold';src:url('https://cdnurl/Alibaba-PuHuiTi-Bold.woff2')format('woff2');font-weight:normal;font-style:normal;}tailwind设置fontFamily 直接使用变量,  直接在className上写  font......
  • 安卓端和鸿蒙性能测试环境脚本-sh+python
    背景:做安卓和鸿蒙性能测试,需要搭建环境,把常用的几个pip包和虚拟环境等记录一下,在新的电脑上可以快速安装(仅作为个人记录)准备工作mac电脑python版本>=3.7.9sh脚本#!/usr/local/bin/bash##########################################################################Fil......
  • 鸿蒙开发进阶(HarmonyOS )FileUri开发指南(C/C++)
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)场景介......
  • 鸿蒙开发进阶(HarmonyOS)时域可分层视频编码
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)基础概......
  • 鸿蒙开发进阶(OpenHarmony)扩展组件-系统调用
    鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)基本概念......
  • 华为大气啊!HarmonyOS NEXT公测发福利~这个可以有
    HarmonyOSNEXT火热公测中,首批100万名公测用户速来领取多重权益!华为视频、华为阅读、音乐、主题、云空间、天际通等应用会员一应俱全;还有爱奇艺、哔哩哔哩、芒果TV、WPS、喜马拉雅、优酷六大应用的会员季卡6选2,这一波不得不说华为大气!......
  • 鸿蒙HarmonyOS(ArkUI基础-3)
    文章目录ArkUI(方舟UI框架)1.简介2.基本概念3.概述4.布局1.概述......
  • 鸿蒙 Next 实战:构建安全高效的在线支付应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在数字化金融......