更新记录

0.1.0(2026-10-28) 下载此版本

  • 首发:移动认证一键登录 UTS 插件(官方自集成三网:移动 / 联通 / 电信),与阿里插件 reglow-ali-login 二选一按需引入
  • 统一取号 API:preAuth() 预取号(检测本机运营商与 SDK 可用性)、getPhoneNumber() 取号,返回 { operator, token, userInformation }
  • 平台覆盖:Android(AAR 5.9.20)、iOS(xcframework 5.9.17)、HarmonyOS(HAR 1.0.11)原生 SDK,分别由 utssdk/app-android / app-ios / app-harmony 实现;H5 走移动 JSSDK 标准版(jssdk-1.0.0.min.js);微信小程序及抖音 / 百度 / 快手 / 快应用已备好 JSSDK 协议骨架(线上加载,#ifdef MP-* 分支)
  • H5 端实现:17 位时间戳(yyyyMMddHHmmssSSS)+ MD5 签名(businessType=8)取 token,token 与 userInformation 交后端 mobile-h5 provider 校验
  • 开发期内置 mock(operator='mock'):未配置 CMCC_APP_ID / CMCC_APP_KEY 时自动降级 mock 凭证,配合后端 reglow-pyproject-starter 的 POST /api/v1/auth/operator/login(mock provider)即可跑通「一键登录 → 授权弹窗 → 自动注册 → 登录」
  • 后端 provider:mobile(App 原生端 token 校验,MD5 签名 → /unisdk/rsapi/loginTokenValidate → msisdn)、mobile-h5(H5 / 小程序 token 校验,SHA256withRSA 签名 → /h5/onekeylogin/tokenValidate → AES 解密手机号)

平台兼容性

uni-app x(5.31)

Chrome Safari Android iOS 鸿蒙 微信小程序
√ √ √ √ √ -

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
√ √ × √

reglow-mobile-login(移动认证一键登录 UTS 插件)

移动认证一键登录插件(官方自集成三网:移动 / 联通 / 电信),提供统一取号 API:

  • preAuth():预取号,检测本机运营商与 SDK 可用性
  • getPhoneNumber():取号,返回 { operator, token, userInformation }(调用前须先弹授权协议)

阿里云号码认证为独立插件 reglow-ali-login(operator=ali)。 两个插件二选一按需引入:用移动装本插件,用阿里装 ali 插件,各只带自己的 SDK(按需打包)。

平台覆盖(移动认证官方三网覆盖,一套解决)

端 接入方式 SDK 二进制 operator 实现位置
Android 原生 SDK(AAR 5.9.20) utssdk/app-android/libs/quick_login_android_5.9.20.aar mobile utssdk/app-android/index.uts
iOS 原生 SDK(xcframework 5.9.17) utssdk/app-ios/TYRZUISDK.xcframework mobile utssdk/app-ios/index.uts
HarmonyOS 原生 SDK(HAR 1.0.11) utssdk/app-harmony/libs/quick_login_hm_.1.0.11.har mobile utssdk/app-harmony/index.uts
H5 移动 JSSDK(标准版) 线上加载 jssdk-1.0.0.min.js mobile-h5 utssdk/index.uts 的 #ifdef WEB 分支
微信小程序 移动 JSSDK 线上加载 jssdk_v1.0.0.min.js mobile-h5 utssdk/index.uts 的 #ifdef MP-WEIXIN 分支
抖音 / 百度 / 快手小程序、快应用 移动 JSSDK(对应平台) 按各平台文档引入 mobile-h5 utssdk/index.uts 的 #ifdef MP-* 分支

小程序 / 快应用分支已按微信小程序文档写好协议骨架(JSSDK URL、MD5 签名、businessType), 抖音 / 百度 / 快手 / 快应用按各自接入文档替换 JSSDK 模块与 businessType 即可。

开发期(mock)

默认内置 mock 实现(operator='mock'),配合后端 reglow-pyproject-starter 的 POST /api/v1/auth/operator/login(mock provider)即可跑通: 一键登录 → 授权弹窗 → 自动注册 → 登录。

接入真实 SDK(移动认证,三网覆盖)

1. 申请应用参数

在 https://dev.10086.cn/numIdentific 申请「号码认证」应用,获得:

  • APP_ID / APP_KEY:客户端取号用(各端平台文件 / JSSDK)
  • APP_SECRET:服务端 token 校验用(只放后端,勿放客户端)

2. 填写客户端参数

把各平台文件顶部的 CMCC_APP_ID / CMCC_APP_KEY 替换为真实值; iOS 端需在 App 启动(App.uvue onLaunch)调用 register() 注册 SDK; 未配置时自动降级为 mock 凭证,开发期流程可继续跑通。

3. 后端配置

.env 注入(见 reglow-pyproject-starter/backend/.env.example):

# App 原生端(Android / iOS / HarmonyOS)
OPERATOR_PROVIDER=mobile
OPERATOR_MOBILE_APPID=<APP_ID>
OPERATOR_MOBILE_SECRET=<APP_SECRET>
# endpoint 默认 https://www.cmpassport.com/unisdk/rsapi/loginTokenValidate(MD5 签名)

# H5 / 小程序(JSSDK)
OPERATOR_MOBILE_H5_APPID=<APP_ID>
OPERATOR_MOBILE_H5_APPKEY=<APP_KEY>
OPERATOR_MOBILE_H5_RSA_PRIVATE_KEY=<客户 RSA 私钥 PEM>
# AES key 与 appkey 约定不一致时显式指定(16 字节,ASCII)
OPERATOR_MOBILE_H5_AES_KEY=
# endpoint 默认 https://www.cmpassport.com/h5/onekeylogin/tokenValidate(RSA 签名 + AES 解密)

后端 provider 已实现:

  • mobile:App 原生 token 校验(MD5 签名 → /unisdk/rsapi/loginTokenValidate → msisdn)
  • mobile-h5:H5 / 小程序 token 校验(SHA256withRSA 签名 → /h5/onekeylogin/tokenValidate → AES 解密手机号)
  • 测试见 backend/tests/test_operator_login.py(13 项,覆盖两套协议)

4. H5 / 小程序(JSSDK)特别说明

  • 集成页面地址(referer)与请求来源(origin)需在移动认证平台报备;
  • 取号仅支持数据流量,wifi / 热点下会失败(微信小程序 v1.4.0 起支持流量+WiFi 同时开启);
  • H5 / 小程序端 appkey 暴露在客户端是官方标准流程(用于计算 MD5 签名);
  • userInformation(终端指纹)需随 token 一起提交,后端 mobile-h5 校验必填。

注意

  • 取号前必须先向用户展示授权协议并获得同意(合规要求);
  • 平台文件最终编译需在 HBuilderX 运行到 Android / iOS / HarmonyOS 真机、各小程序工具验证;
  • App 原生端(mobile)与 H5/小程序(mobile-h5)使用两套后端校验协议,请求方需传对应 operator。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。