号码认证服务集成过程分为服务端集成和客户端集成,不同认证方式和不同客户端的集成方式略有不同。本文将为您介绍图形认证、号码认证和融合认证的完整交互流程。
由于H5页面的低安全性,采用下发Token的形式进行身份校验,号码认证服务为H5页面集成开发了专属OpenAPI,在集成上与其他客户端集成存在一些差异,详情请参见H5页面Demo体验。
图形认证交互流程

流程涉及四个参与方:开发者客户端、开发者服务端、阿里云图形认证服务端、阿里云短信服务端。
图形认证流程(两次验证)
第一次验证(前端):
开发者客户端初始化 SDK
客户端向阿里云图形认证服务端发送验证初始化 load 请求
服务端返回验证码资源(如滑块、拼图等)
用户在端侧回答问题(完成图形验证操作)
问题答对后,阿里云服务端返回 token
第二次验证(服务端):
客户端将 token 传给开发者服务端,服务端带上 token 发起第二次验证
开发者服务端对参数签名,向阿里云图形认证服务端发送校验请求
阿里云服务端返回二次校验结果
校验成功,流程结束
后续业务流程(以短信验证码为例)
开发者服务端调用阿里云短信服务端的短信验证码发送接口
返回短信验证码发送结果
两次验证机制:前端验证(用户交互)+ 后端验证(token 校验),防止前端绕过。
token 传递:前端验证通过后获取 token,交由服务端做二次校验,确保结果可信。
安全隔离:敏感操作(如发短信)只在服务端执行,图形认证作为前置防护层。
号码认证交互流程
一键登录
一键登录交互流程主要分为四个步骤:初始化、唤起授权页面、同意授权并登录、服务端取号。
初始化。
访问App页面。
SDK初始化。
唤起授权页面。
初始化成功后,调用
getLoginToken唤起授权页面。SDK请求脱敏号码。
请求成功后会在授权页面展示脱敏号码及运营商协议供终端用户确认。
重要一键登录或注册需用户确认授权方可使用,且登录按钮文字描述必须包含“登录”、注册按钮文字描述必须包含“注册”等文字,不得诱导用户授权,开发者不得通过任何技术手段跳过或模拟此步骤,否则我方有权停止服务并追究相关法律责任。
对于接入移动认证SDK并上线的应用,阿里云对上线的应用授权页面做审查,若出现未按要求弹出或设计授权页面的,将停止应用的一键登录或注册服务。
为减少授权页唤起的等待时间,可预先判断用户是否需要进行登录或注册,如果需要可调用预取号接口,调用后会在终端侧缓存预取号信息,供后续流程使用。
请注意预取号(不收费)的频率,阿里云会在预取号与实际取号的比例异常时,停止提供相应的服务。
同意授权并登录。
确认授权页面的内容,并同意相关协议。
单击授权页面的登录或注册按钮,SDK会发起本次取号的Token获取。
获取成功后将Token返回给开发者App。
服务端取号。
开发者App将获得的取号Token传递至开发者服务器端。
开发者服务端携带Token调用号码认证服务端GetMobile接口。
号码认证服务端取得号码后将号码返回给开发者服务端。
重要由于运营商限制,客户端无法获取到手机号、手机掩码。
本机号码校验
本机号码校验交互流程主要分为三个步骤:初始化、获取认证参数、发起认证。
初始化。
用户访问App页面。
SDK初始化。
重要对于Android系统,当用户授权允许读取SIM卡数据时,初始化方法会同时返回从SIM卡读取到的手机号码,帮助用户提前填写手机号码。如果用户未授权或其它原因,则该函数仅返回是否支持号码认证。iOS系统不支持从SIM卡读取手机号码进行助填。
获取认证参数。
用户输入认证手机号码。
获取本机号码校验token。
发起认证。
开发者App向其服务端发起认证请求。
调用认证接口。开发者服务端调用本机号码校验认证VerifyMobile接口获取认证结果,判断用户输入的手机号码与用户终端当前访问网络的手机号码是否一致。
给客户端返回验证结果。
融合认证交互流程

集成阿里云SDK到客户端中,初始化并调用阿里云SDK。
对接阿里云APIGetFusionAuthToken获取鉴权Token,下发至客户端后传入SDK进行鉴权。
唤起场景授权页面,部分场景需要用户授权(同意隐私协议、获取短信验证码等)。
用户授权后,从SDK回调接口获取到换号Token后。
将换号Token上传到开发者的服务器,对接阿里云的服务端API接口VerifyWithFusionAuthToken,将Token转换为用户的手机号。