aliPhoneAuth

论坛示例

为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

** aliPhoneAuth 插件概述**

阿里云号码认证服务插件整合三大运营商特有的数据网关认证能力,升级短信验证码体验,应用于用户注册、登陆、安全校验等场景,可实现用户无感知校验,操作更安全、便捷、低时延。

阿里云号码认证服务功能只可在原生APP中使用,此插件对阿里云的SDK进行集成,可以在YonBuilder移动开发项目中快速接入,在一个方法中调起一键认证服务功能。

不能同时使用的插件:无

插件使用攻略

使用之前须获取阿里云访问密钥,创建认证方案,获取 AccessKeyId和 AccessKeySecret,并获取认证方案的秘钥。

号码认证服务接入流程参考 阿里云号码认证服务使用流程

使用此插件之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:aliPhoneAuth
  • 参数:apiKeyAndroid、apiKeyIos
  • 配置示例:
  <feature name="aliPhoneAuth">
    <param name="apiKeyAndroid" value="Android认证方案的秘钥"/>
    <param name="apiKeyIos" value="iOS认证方案的秘钥"/>
  </feature>
  • 字段描述:

    apiKeyAndroid:(必须配置)用于Android号码认证时,传入阿里云SDK的秘钥。申请方法参考创建认证方案。

    apiKeyIos:(必须配置)用于iOS号码认证时,传入阿里云SDK的秘钥。申请方法参考创建认证方案。

oneKeyLogin

一键登录集成入口

oneKeyLogin({params}callback(ret, err))

params

timeout:

  • 类型:数字
  • 描述:(可选项)延迟等待时间,默认3000。

navHidden:

  • 类型:字符串
  • 描述:(可选项)是否显示标题(true隐藏,false显示)
  • 默认值:0

logBtnTextColor:

  • 类型:字符串
  • 描述:(可选项)登录按钮字体颜色。例:#ffffff

privacyColor:

  • 类型:字符串
  • 描述:(可选项)协议连接字体颜色。例:#e75555

switchAccText:

  • 类型:字符串
  • 描述:(可选项)其他登录方式
  • 默认值:其他登录方式

logoImage:

  • 类型:字符串
  • 描述:(可选项)logo图片,只支持widget图片,例:widget/icon/icon150x150.png。

logBtnBackgroundImage:

  • 类型:字符串
  • 描述:(可选项)登录按钮背景图片,只支持widget图片,例:widget/icon/icon150x150.png。

privacyOne:

privacyTwo:

privacyTip:

  • 类型:字符串
  • 描述:(可选项)协议未勾选提示。例:请阅读并同意协议
  • 默认值:请阅读并同意协议

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: "600000",      //字符串;参考阿里云号码认证服务返回码
    token: "" //字符串,成功获取token的信息
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: “”    //字符串;参考阿里云号码认证服务返回码
}

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
var params={
    timeout: 5000,
    navHidden: "true",
    logBtnTextColor: "#ffffff",
    privacyColor: "#e75555",
    switchAccText: "其他登录方式",
    logoImage: "widget/icon/icon150x150.png",
    privacyOne: ["《用户协议》", "https://www.apicloud.com/"],
    privacyTwo: ["《隐私政策》", "https://www.apicloud.com/"],
    privacyTip: "请阅读并同意协议"
}
aliPhoneAuth.oneKeyLogin(params, function(ret, err){
    if(ret.code=='600000'){//获取token成功
        var token = ret.token;
        aliPhoneAuth.quitLoginPage();//关闭一键登录页面
    }else if(ret.code=='700000'){//点击返回,用户取消授权

    }else if(ret.code=='700001'){//点击切换按钮,用户取消授权

    }else{ //其他授权失败

    }
});

可用性

android系统

可提供的1.0.9及更高版本

checkEnvAvailable

检查终端是否支持号码认证

var available = checkEnvAvailable()

返回值

available

  • 类型:boolean

  • 值 :true||false, SDK环境检查函数,检查终端是否支持号码认证。

示例代码

//初始化
var aliPhoneAuth = api.require('aliPhoneAuth');

//检查环境
var ret = aliPhoneAuth.checkEnvAvailable();
if(!ret){
    alert('环境不支持');
    return;
}

可用性

Android系统

可提供的1.0.6及以下版本

setAuthUIConfig

修改一键登录授权页主题

var exeRes = setAuthUIConfig({'config':config})

params

config:

  • 类型:JSON 数组

  • 描述:(必填)需要修改主题的配置,格式如下:

    var config=[
        {'name':'setLogBtnText','types':['String'],'values':['一键登录2']},
        {'name':'setNumberSize','types':['int'],'values':[30]},
        {'name':'setNumberColor','types':['int'],'values':[-4970967]},
        {"name":"setAppPrivacyOne","types":["String","String"],"values":["用户协议","http://www.dm.com"]}
    ];
    
  • name为函数名(参考[修改一键登录授权页主题])

  • types为参数的类型,需要传数组

  • values是参数值,需要传数组,如果值为颜色,则取android.graphics.Color.parseColor("#RRGGBB")的返回值

  • 此方法使用java的反射原理,所以参数类型必需要函数原型一致,函数原型可以参考阿里的SDK,目前只支持java几种原生类型

返回值

exeRes:

  • 类型:JSON 数组

  • 此值为config的回传,并添加了executeResult及exception字段,以说明方法是否执行成功,格式如下:

    var config=[
        {'name':'setLogBtnText','types':['String'],'values':['一键登录2'],'executeResult':'success'},
        {'name':'setNumberSize','types':['int'],'values':[30],'executeResult':'success'},
        {'name':'setNumberColor','types':['int'],'values':[-4970967],'executeResult':'success'},
        {"name":"setAppPrivacyOne","types":["String","String"],"values":["用户协议","http://www.dm.com"],'executeResult':'failure','exception':'nomethod'}
    ];
    
  • executeResult: 执行结果,success为执行成功,failure为执行失败

  • exception:当executeResult=failure,此字段有值,值为执行失败的原因

示例代码

//初始化
var aliPhoneAuth = api.require('aliPhoneAuth');

//检查环境
var ret = aliPhoneAuth.checkEnvAvailable();
if(!ret){
    alert('环境不支持');return;
}

//一键登录修改授权页主题
//name为函数名,types为参数的类型,需要传数组,values是参数值,需要传数组
//此方法使用java的反射原理,所以参数类型必需要函数原型一致,函数原型可以参考阿里的SDK,目前只支持java几种原生类型
//此方法后将config回传,并添加了executeResult及exception字段,以说明方法是否执行成功
//方法集可以参考[https://help.aliyun.com/document_detail/144231.html?spm=a2c4g.11186623.6.557.734e360cSAs1FG#h2-6-1-20]
//(经测试,阿里云的文档中,有些方法是不存在的)
var config=[
    {'name':'setLogBtnText','types':['String'],'values':['一键登录2']},
    {'name':'setNumberSize','types':['int'],'values':[30]},
    {'name':'setNumberColor','types':['int'],'values':[-4970967]},
    {"name":"setAppPrivacyOne","types":["String","String"],"values":["用户协议","http://www.baidu.com"]}
];
var param = {'config':config};
var exeRes =aliPhoneAuth.setAuthUIConfig(param);

可用性

Android系统

可提供的1.0.6及以下版本

getLoginToken

一键登录唤起授权页并获取token

getLoginToken({timeout:number}, callback(ret, err))

params

timeout:

  • 类型:int
  • 描述:(必填)唤起授权页的超时时间,单位为毫秒,超过此时间未唤起则会回调,并提示超时

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    event: ''   //回调事件
    code:''    //响应码
    msg:''      //提示信息
}

ret.event的值有以下几种情况:

1: normal为调用函数的正常返回

2: onAuthUIControlClick 为控件点击事件回调,如点击“其他登录方式”,具体参考说明

3: onTokenResultSuccess为获取token成功的回调,onTokenResultFailed获取token失败的回调

4: onPreLoginResultSuccess为预取号调用成功的回调,onPreLoginResultFailed为预取号调用失败的回调

ret.code值有以下几种情况

1:值小于等于0时,一般为参数错误,如:"timeout参数必须大于0",具体见ret.msg的值

2:值等于1时,则函数调用成功,ret.event=‘normal’

3:值大于1时,为阿里云SDK返回值,具体可以参考阿里云SDK返回值,值如下:

返回码 返回码描述 建议
600000 获取token成功 无
600001 唤起授权页成功 无
600002 唤起授权页失败 建议切换到其他登录方式
600004 获取运营商配置信息失败 创建工单联系工程师
600005 手机终端不安全 切换到其他登录方式
600007 未检测到sim卡 提示用户检查 SIM 卡后重试
600008 蜂窝网络未开启 提示用户开启移动网络后重试
600009 无法判断运营商 创建工单联系工程师
600010 未知异常 创建工单联系工程师
600011 获取token失败 切换到其他登录方式
600012 预取号失败 无
600013 运营商维护升级,该功能不可用 创建工单联系工程师
600014 运营商维护升级,该功能已达最大调用次数 创建工单联系工程师
600015 接口超时 切换到其他登录方式
600017 AppID、Appkey解析失败 秘钥未设置或者设置错误,请先检查秘钥信息,如木遥无问题创建工单联系工程师
600021 点击登录时检测到运营商已切换 切换到其他登录方式
700000 点击返回,?户取消免密登录 无
700001 点击切换按钮,?户取消免密登录 无
700002 点击登录按钮事件 无
700003 点击check box事件 无
700004 点击协议富文本文字事件 无

err:

无err返回

示例代码

//初始化
var aliPhoneAuth = api.require('aliPhoneAuth');

//检查环境
var ret = aliPhoneAuth.checkEnvAvailable();
if(!ret){
    alert('环境不支持');
    return;
}

//弹起授权页面
//ret.event的值有以下几种情况
//1: normal为调用函数的正常返回
//2: onAuthUIControlClick 为控件点击事件回调,如点击“其他登录方式”,具体参考:https://help.aliyun.com/document_detail/144231.html?spm=a2c4g.11186623.6.557.734e360cSAs1FG#h2-5-19-19
//3: onTokenResultSuccess为获取token成功的回调,onTokenResultFailed获取token失败的回调
//4: onPreLoginResultSuccess为预取号调用成功的回调,onPreLoginResultFailed为预取号调用失败的回调
//
//除了使用ret.event外,应该关注ret.code,当ret.code<0时,一般为参数错误,具体见ret.msg
//函数调用成功,都会返回1,ret.event=‘normal’
//其他ret.code参考https://help.aliyun.com/document_detail/144231.html?spm=a2c4g.11186623.6.557.734e360cSAs1FG#h2-5-18-sdk-18
var param = {timeout:3000};
aliPhoneAuth.getLoginToken(param, function(ret, err){
    if(ret.code=='600000'){//获取token成功
        aliPhoneAuth.quitLoginPage();//关闭一键登录页面

        //调用服务器业务...
    }else if(ret.code=='700000'){//点击返回,用户取消授权

    }else if(ret.code=='700001'){//点击切换按钮,用户取消授权
        aliPhoneAuth.quitLoginPage();//关闭一键登录页面
    }
});

可用性

Android系统

可提供的1.0.6及以下版本

getCurrentCarrierName

返回默认上网卡运营商

var name=getCurrentCarrierName()

params

无

返回值

name:

  • 类型:字符串
  • 描述:值为 CMCC、CUCC、CTCC

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
aliPhoneAuth.getCurrentCarrierName();//返回默认上网卡运营商

可用性

Android系统

可提供的1.0.6及以下版本

quitLoginPage

退出登录授权页

quitLoginPage()

params

无

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
aliPhoneAuth.quitLoginPage();//关闭一键登录页面

可用性

Android系统

可提供的1.0.0及更高版本

oneKeyLogin

一键登录集成入口

oneKeyLogin({params}callback(ret, err))

params

timeout:

  • 类型:数字
  • 描述:(可选项)延迟等待时间,默认3.0。

navIsHidden:

  • 类型:数字
  • 描述:(可选项)是否显示标题(0显示,1不显示)
  • 默认值:0

navColor:

  • 类型:字符串
  • 描述:(可选项)导航颜色。例:#000000

title:

  • 类型:字符串
  • 描述:(可选项)标题
  • 默认值:一键登录

logoImage:

  • 类型:字符串
  • 描述:(可选项)logo图片,只支持网络图片,建议不传。

sloganText:

  • 类型:字符串
  • 描述:(可选项)默认”**提供认证服务“,建议不改文案。

numberColor:

  • 类型:字符串
  • 描述:(可选项)号码颜色。例:#000000
  • 默认值:一键登录

numberFont:

  • 类型:字符串
  • 描述:(可选项) 号码字体大小。例:30.0

loginBtnText:

  • 类型:字符串
  • 描述:(可选项) 按钮文案,默认”一键登录“。

buttonColor:

  • 类型:字符串
  • 描述:(可选项) 按钮颜色。例:#000000

changeBtnTitle:

  • 类型:字符串
  • 描述:(可选项)切换其他方式文案。

privacyOne:

privacyTwo:

  • 类型:字符串
  • 描述:(可选项) 协议2,不能与协议1同名。例:[“《协议2》”,”https://www.dm.com”]

checkBoxIsHidden:

  • 类型:字符串
  • 描述:(可选项) 是否显示协议选择框(0隐藏,1显示),默认0。

checkBoxIsChecked:

  • 类型:字符串
  • 描述:(可选项) 是否默认选中协议(0选中,1未选择),默认0

privacyPreText:

  • 类型:字符串
  • 描述:(可选项) 协议前面部分描述。

supportedInterfaceOrientations:

  • 类型:字符串
  • 描述:(可选项)横竖屏支持(0横竖屏,1竖屏,2横屏),不建议改。
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: "600000",      //字符串;参考阿里云号码认证服务返回码
    token: "" //字符串,成功获取token的信息
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: “”    //字符串;参考阿里云号码认证服务返回码
}

示例代码

aliPhoneAuth.oneKeyLogin({
    timeout: 5.0,
    privacyOne: ["《协议1》", “https://www.apicloud.com"],
    privacyTwo: ["《协议2》", “https://www.apicloud.com"]
}, function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统

可提供的1.0.0及更高版本

checkEnvAvailableWithComplete

接口检查及准备接口调用环境

checkEnvAvailableWithComplete( callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: "600000",      //字符串;参考阿里云号码认证服务返回码
}

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
aliPhoneAuth.checkEnvAvailableWithComplete(function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统

可提供的1.0.0及更高版本

accelerateLoginPageWithTimeout

调用取号接口,加速授权页的弹起

accelerateLoginPageWithTimeout({params}, callback(ret, err))

params

timeout:

  • 类型:字符串
  • 描述:(可选项)延迟等待时间(默认3.0s)。例:5.0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: "600000",      //字符串;参考阿里云号码认证服务返回码
}

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
aliPhoneAuth.accelerateLoginPageWithTimeout({
    timeout: '5.0'
},function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统

可提供的1.0.0及更高版本

getLoginTokenWithTimeout

一键登录获取token

getLoginTokenWithTimeout({params}, callback(ret, err))

params

timeout:

  • 类型:字符串
  • 描述:(可选项)延迟等待时间(默认3.0s)。例:5.0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    resultCode: "600000",      //字符串;参考阿里云号码认证服务返回码
}

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
aliPhoneAuth.getLoginTokenWithTimeout({
    timeout: 5.0
},function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统

可提供的1.0.0及更高版本

cancelLoginVCAnimated

一键登录注销登录页面

cancelLoginVCAnimated()

示例代码

var aliPhoneAuth = api.require('aliPhoneAuth');
aliPhoneAuth.cancelLoginVCAnimated();

可用性

iOS系统

是否仍需要帮助? 请保持联络!
最后更新于 2026/04/24