HarmonyOS 鸿蒙Next中短信服务获取验证码的流程顺序

HarmonyOS 鸿蒙Next中短信服务获取验证码的流程顺序 在阿里云开通了短信服务,想要获取验证码,不清楚具体的流程顺序,这个流程顺序大概是什么样的?

3 回复

正常流程是开发云函数,在ArkTS中去触发云函数,在云函数中发送请求给阿里云,阿里云那边不管是否成功发送短信都会返回结果,成功就是成功结果,失败的话会返回失败原因,然后云函数接收,再传递到ArkTS上。云函数的文档可以参考 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/cloudfoundation-develop-cloud-function

更多关于HarmonyOS 鸿蒙Next中短信服务获取验证码的流程顺序的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS Next中短信服务获取验证码流程

应用调用verifyCode接口发起请求,系统将请求发送至短信服务提供商(如华为云短信服务)。服务商生成验证码并发送至用户手机,同时将验证码返回给应用。应用通过回调或监听verifyEvent事件接收验证码,进行本地校验。整个过程在系统级完成,应用无需处理短信发送细节。

在HarmonyOS Next中集成阿里云短信服务获取验证码,其核心流程与通用移动应用开发类似,但需遵循HarmonyOS的特定API规范。主要流程顺序如下:

  1. 前置准备:确保已在阿里云控制台完成短信服务(SMS)的开通,并获取有效的AccessKey IDAccessKey Secret、短信签名和模板代码。

  2. HarmonyOS应用侧配置与开发

    • 网络权限:在module.json5配置文件中声明网络访问权限(ohos.permission.INTERNET)。
    • 引入HTTP客户端:使用ArkTS/JS的@ohos.net.http模块或第三方HTTP库(如axios的适配库)来发起网络请求。
    • 构造请求:按照阿里云短信服务API的要求(通常是SendSms接口),在应用端组装请求参数。这包括将AccessKey、签名、模板代码、目标手机号及验证码变量等参数,并按照阿里云规定的格式(如SDK或直接调用API)进行签名和编码。
    • 发送请求:通过HTTP客户端将请求发送至阿里云短信服务API端点(例如dysmsapi.aliyuncs.com)。
  3. 服务端交互(关键安全环节)

    • 重要提示:出于安全考虑,不建议在HarmonyOS客户端内直接硬编码或使用AccessKey Secret调用阿里云短信API。标准的做法是:
      • 由您自己的应用业务服务器作为中转,HarmonyOS应用将手机号发送至您的服务器。
      • 服务器端(使用阿里云官方SDK)携带AccessKey Secret安全地调用阿里云短信服务发送验证码,并将结果返回给HarmonyOS应用。
    • 生成与存储验证码:服务器生成随机验证码,并与手机号、时间戳关联后暂时存储(如存入数据库或缓存),并设置较短的有效期(如5分钟)。
  4. HarmonyOS应用接收与处理

    • 接收您自己服务器返回的发送结果(成功或失败)。
    • 在应用界面提示用户“验证码已发送”,并启动倒计时器。
  5. 验证码校验

    • 用户输入验证码后,HarmonyOS应用将“手机号+用户输入的验证码”提交给您的业务服务器。
    • 服务器比对存储的验证码是否匹配且未过期,并将校验结果返回给应用,以完成后续业务流程。

总结的核心顺序链为HarmonyOS应用 → (发送手机号至)→ 您的业务服务器 → (使用阿里云SDK调用)→ 阿里云短信服务 → (短信下发至用户手机)→ 用户接收并输入HarmonyOS应用提交您的业务服务器校验返回结果至HarmonyOS应用

此流程将敏感密钥保管在服务器端,确保了安全性,是HarmonyOS Next及任何移动平台推荐的集成方式。

回到顶部