当前位置: 首页 > news >正文

HarmonyOS FIDO 免密认证:让你的APP支持用指纹和人脸代替密码

什么是 FIDO 免密认证

你有没有觉得每次登录都要输密码很烦?FIDO 免密认证就是用来解决这个问题的。它让你可以用指纹或人脸来代替密码,既方便又安全。

FIDO(Fast Identity Online)是一种国际主流的免密认证标准。简单说,它让你的生物特征(指纹、人脸)成为你的"密码"。你不需要记住复杂的密码,只要按一下指纹或看一下摄像头,就能完成认证。

核心功能

HarmonyOS 的 FIDO 免密认证提供以下功能:

  1. 开通免密认证:注册生物特征,绑定到你的账号。开通过程需要和 FIDO 服务器交互:先从服务器获取注册报文,然后弹出指纹或人脸认证界面,用户认证通过后,把结果发回服务器保存。这样你的生物特征就和账号绑定了
  2. 使用免密认证:用指纹或人脸登录。认证过程也需要和 FIDO 服务器交互:先从服务器获取认证报文,然后弹出指纹或人脸认证界面,用户认证通过后,把结果发回服务器验证。服务器验证通过后,返回用户信息,你就登录成功了
  3. 关闭免密认证:解除生物特征和账号的绑定。关闭后,你的指纹或人脸就不再和账号关联了。如果想再次使用免密认证,需要重新开通过程

环境搭建

硬件要求

  • 设备类型:华为手机、平板、2in1
  • HarmonyOS 系统:HarmonyOS NEXT Developer Beta1 及以上
  • 生物特征:设备需要支持指纹或 3D 人脸

软件要求

  • DevEco Studio 版本:DevEco Studio NEXT Developer Beta1 及以上
  • HarmonyOS SDK 版本:HarmonyOS NEXT Developer Beta1 SDK 及以上

搭建步骤

  1. 安装 DevEco Studio:去华为开发者官网下载安装
  2. 配置开发环境:确保网络环境正常
  3. 设备调试:使用真机进行调试

项目结构

├── entry/src/main/ets │ ├── bean │ │ ├── FidoAuth.ets // 认证数据结构 │ │ ├── FidoDereg.ets // 注销数据结构 │ │ └── FidoReg.ets // 注册数据结构 │ ├── ConnectService.ets // 连接FIDO服务器 │ ├── entryability │ │ └── EntryAbility.ets // 程序入口类 │ ├── pages │ │ └── Index.ets // 接口调用示例 │ └── util │ └── Util.ets // 工具类

FIDO 注册流程

下面是 FIDO 免密认证的注册(开通)流程:

客户端请求注册报文

FIDO 服务器返回注册报文

调用 processUAFOperation

弹出生物特征认证界面

用户认证是否通过?

获取认证结果

认证失败

发送认证结果给服务器

服务器保存绑定关系

调用 notifyUAFResult

注册成功

FIDO 认证流程

下面是 FIDO 免密认证的认证(登录)流程:

客户端请求认证报文

FIDO 服务器返回认证报文

调用 processUAFOperation

弹出生物特征认证界面

用户认证是否通过?

获取认证结果

认证失败

发送认证结果给服务器

服务器验证是否通过?

返回用户信息

验证失败

登录成功

第一步:导入模块

import{fido}from'@kit.OnlineAuthenticationKit';

导入在线认证服务模块。

第二步:开通 FIDO 免密认证

开通免密认证就是把你的生物特征(指纹/人脸)和你的账号绑定起来。

// 访问FIDO服务端获取策略检查报文letmessage:string=awaitthis.con.selectType('UAF_REG');letuafMessage:fido.UAFMessage={uafProtocolMessage:message,additionalData:''};

先从 FIDO 服务器获取注册报文。UAF_REG表示这是一个注册请求。

// 传连接通道参数(可选)letchannelBinding:fido.ChannelBinding={};letmessageResp:fido.UAFMessage=awaitfido.processUAFOperation(this.uiContext,uafMessage,channelBinding);letuafProtocolMessage:string=messageResp.uafProtocolMessage;

调用processUAFOperation处理 FIDO 操作。这个函数会弹出生物特征认证界面(指纹或人脸),让用户进行认证。

// 把认证结果发送给FIDO服务器letpar=Util.SpP('regResp',uafProtocolMessage);letregResp:string=awaitUtil.connectFidoServer1(ConnectService.url+'fidoreg',par);

把认证结果发送给 FIDO 服务器,完成注册。

// 通知注册结果letuafMessage:fido.UAFMessage={uafProtocolMessage:uafMess,additionalData:''};fido.notifyUAFResult(this.uiContext,uafMessage).then(()=>{console.info('注册成功');});

调用notifyUAFResult通知系统注册结果。

第三步:使用 FIDO 免密认证

开通之后,就可以用生物特征来登录了。

// 访问FIDO服务端获取认证报文letmessage:string=awaitthis.con.selectType('UAF_AUTH');letuafMessage:fido.UAFMessage={uafProtocolMessage:message,additionalData:''};letchannelBinding:fido.ChannelBinding={};letmessageResp:fido.UAFMessage=awaitfido.processUAFOperation(this.uiContext,uafMessage,channelBinding);

UAF_AUTH表示这是一个认证请求。processUAFOperation会弹出生物特征认证界面。

// 把认证结果发送给FIDO服务器letpar=Util.SpP('loginAuthResp',uafProtocolMessage);letauthResp:string=awaitUtil.connectFidoServer1(ConnectService.url+'fidoauth',par);letisAuth=authResp.includes('userinfo');if(isAuth){// 认证成功}

把认证结果发送给 FIDO 服务器验证。如果服务器返回了用户信息,说明认证成功。

第四步:关闭 FIDO 免密认证

如果不想用免密认证了,可以关闭。

// 访问FIDO服务端获取注销报文letmessage:string=awaitthis.con.selectType('UAF_DEREG');letuafMessage:fido.UAFMessage={uafProtocolMessage:message,additionalData:''};letchannelBinding:fido.ChannelBinding={};letmessageResp:fido.UAFMessage=awaitfido.processUAFOperation(this.uiContext,uafMessage,channelBinding);

UAF_DEREG表示这是一个注销请求。调用后,生物特征和账号的绑定关系会被解除。

FIDO 认证流程

整个 FIDO 认证流程是这样的:

注册流程

  1. 客户端向 FIDO 服务器请求注册报文
  2. 客户端调用processUAFOperation,弹出生物特征认证
  3. 用户进行指纹或人脸认证
  4. 客户端把认证结果发送给 FIDO 服务器
  5. FIDO 服务器保存绑定关系
  6. 客户端调用notifyUAFResult通知结果

认证流程

  1. 客户端向 FIDO 服务器请求认证报文
  2. 客户端调用processUAFOperation,弹出生物特征认证
  3. 用户进行指纹或人脸认证
  4. 客户端把认证结果发送给 FIDO 服务器
  5. FIDO 服务器验证并返回用户信息

实际应用场景

FIDO 免密认证在实际开发中有很多用途:

免密登录

// 用户打开应用,直接用指纹登录asyncfunctionloginWithFingerprint(){letmessage=awaitgetAuthMessage();letresult=awaitfido.processUAFOperation(uiContext,message,{});// 验证结果,完成登录}

免密支付

// 用户支付时,用指纹确认asyncfunctionpayWithFingerprint(amount:number){letmessage=awaitgetPaymentAuthMessage(amount);letresult=awaitfido.processUAFOperation(uiContext,message,{});// 验证结果,完成支付}

身份验证

// 敏感操作前,验证用户身份asyncfunctionverifyIdentity(){letmessage=awaitgetVerifyMessage();letresult=awaitfido.processUAFOperation(uiContext,message,{});// 验证结果,允许操作}

适用场景

FIDO 免密认证适合以下场景:

  • 银行应用:免密登录、免密支付
  • 金融应用:身份验证、交易确认
  • 企业应用:员工登录、敏感操作确认
  • 社交应用:快速登录

注意事项

  1. 设备支持:设备需要支持指纹或 3D 人脸
  2. 生物特征录入:使用前需要先录入指纹或人脸
  3. FIDO 服务器:需要开发者自己实现 FIDO 服务器逻辑
  4. 安全性:FIDO 是国际标准,安全性很高
  5. 用户体验:比输密码方便很多,用户接受度高

总结

FIDO 免密认证让你的应用支持指纹和人脸登录,核心流程:

  1. 开通免密认证(注册生物特征)
  2. 使用免密认证(指纹/人脸登录)
  3. 关闭免密认证(解除绑定)

掌握了这些,你就能让你的应用支持免密认证,提升用户体验和安全性。

http://www.gsyq.cn/news/1483262.html

相关文章:

  • 深度专栏 | 粉碎感官玄学:精品可可的冷酷重构与物理变量
  • 从登录页到搜索框:手把手拆解微信小程序input在不同业务场景下的最佳实践
  • Linux网络管理
  • 安卓设备调试核心技术剖析:ADB命令深度实践指南
  • NSK极速滚珠丝杠USFC 2040-6技术手册
  • 关于拥塞控制的几点思考
  • 嵌入式软件工程师_面试题练习_01
  • 2026年上海冷轧/热镀锌/高强钢/酸洗板/汽车钢/优特钢厂家推荐排行榜:高等级钢材牌号全解析与实力厂商权威对比指南 - 品牌发掘
  • 垂直行业企业怎么做精准GEO优化
  • 音频信息传输系统第四周
  • 江苏汇生红木推荐,其家具性价比高吗 - myqiye
  • 智读致用《埃隆之书》9|我们必须实干制造:原型不值钱,量产才值钱
  • 为什么C盘总是最先满?NTFS/FAT32/exFAT的前世今生
  • 手把手教你用ZLToolKit的WorkThreadPool优化你的音视频流媒体服务性能
  • 2026诸暨下水道疏通,地漏马桶疏通专业的师傅选择谁比较好?建议选公安备案+特种作业操作证! - 极速版本
  • 做了 3 款 AI 产品才明白:工程化才是小团队的第一道生死线
  • 汽车诊断工程师必看:ISO15765-2网络层协议实战解析与CANoe配置指南
  • 电子汽车衡操作便捷,靠谱吗 - 工业品牌热点
  • AI 时代还需要买课吗?我用 Skills + Markdown + HTML 搭了一套自学系统
  • 2026 昆明防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南 - 宅安选房屋修缮
  • 2026年乙烯基重防腐材料厂家推荐榜:玻璃鳞片/树脂胶泥/高固含涂料最新品牌精选! - 品牌发掘
  • 手把手教你用 MATLAB 实现 PSO + CPLEX 双层优化(附完整数学模型与代码架构)
  • Blender贝塞尔曲线工具:Flexi Bézier Toolkit完整使用指南与高级技巧
  • Baguette开源:不开Xcode也能操控iOS模拟器,Web界面管理
  • 2026年天津大件物流托运哪家好?5家运力充足公司专业推荐 - 本地品牌推荐
  • 2026年天津体能培训推荐榜单:5家专业机构实力盘点 - 本地品牌推荐
  • 2026年衡阳拓兴臻玺湾口碑好不好 - mypinpai
  • 保姆级避坑指南:跟着CODESYS官方教程做冰箱控制项目,我踩了这些坑
  • Qt 入门 09|Qt 常用容器:QString/QByteArray/QList/QVector 字符串与容器使用大全
  • 2026年口碑好的室外婚纱摄影品牌排名 - mypinpai