uni-app接入阿里云认证SDK(号码认证服务),App客户端一键登方式
阿里云有App客户端本机号码校验和App客户端一键登方式,我们选用的是App客户端一键登方式。一键登录交互流程主要分为四个步骤:初始化、唤起授权页面、同意授权并登录、服务端取号
uni-app接入阿里云认证SDK(号码认证服务)App客户端一键登方式
首先,你需要了解和开通阿里云的号码认证服务,地址:https://help.aliyun.com/product/75010.html
阿里云有App客户端本机号码校验和App客户端一键登方式,我们选用的是App客户端一键登方式
一键登录交互流程主要分为四个步骤:初始化、唤起授权页面、同意授权并登录、服务端取号。
Android端接入方式
-
下载插件。
访问插件地址:阿里云号码认证SDK,进入插件详情页。点击界面右侧的下载for离线打包
下载插件。
-
项目中引入插件。
a. 在项目的根目录新建nativeplugins文件夹
,将下载的AliCloud-NirvanaPns_1.1.0.zip
解压后放入nativeplugins
文件夹。
b. 打开根目录manifest.json
文件,单击App原生插件配置 > 选择本地插件。
c. 在本地插件选择对话框,勾选阿里云号码认证SDK。单击确定即可引入。
-
放进去之后不能立即调试使用,因为我们用了原生的插件,所以你要先制作一个
自定义调试基座
,然后运行的时候选择使用自定义基座运行
,才能正常调试使用。
这里说一下,因为制作自定义基座也是要走一遍打包流程,所以证书也是不能为空
的。
项目里面使用方法,以vue2项目为例:
阿里云官方文档写的很具体,文档地址:https://help.aliyun.com/document_detail/2249365.html?spm=a2c4g.2249340.0.0.c4192af4tmKg5Q
这里我是用了一个按钮触发这个方法,你也可以直接在页面加载后就执行。
<button @click="getLoginToken_ali">手机号一键登录</button>
<script>
var aLiSDKModule = uni.requireNativePlugin('AliCloud-NirvanaPns')
let platform = uni.getSystemInfoSync().platform
// sdkInfo 是从阿里云控制台获取的秘钥
const sdkInfo ='******'
aLiSDKModule.setAuthSDKInfo(sdkInfo)
export default {
data() {
return {
authUiConfig: '' // 调起的页面样式配置项,官方有专门的修改授权页主题配置参数
};
},
onLoad() {},
methods: {
/**
* 阿里云一键登录 阿里云号码认证SDK
* **/
getLoginToken_ali(){
// 这里我是用了一个按钮触发这个方法,你也可以选择页面加载后就执行。
let that = this
aLiSDKModule.accelerateLoginPage(5000, result => {
if ("600000" == result.resultCode) {
console.log("加速成功")
}
})
aLiSDKModule.getLoginToken(
5000,
that.authUiConfig,
tokenResult => {
console.log(tokenResult,'tokenResult');
if ("600001" == tokenResult.resultCode) {
console.log("授权页拉起成功")
} else if ("600000" == tokenResult.resultCode) {
console.log("获取Token成功,接下来拿着结果里面的Token去服务端换取手机号码,SDK服务到此结束")
//手动关闭授权页
aLiSDKModule.quitLoginPage()
} else {
//其他失败情况,手动关闭授权页
aLiSDKModule.quitLoginPage()
}
},
clickResult => {
switch (clickResult.resultCode) {
case "700000":
console.log("用户点击返回按钮")
break
case "700001":
console.log("用户切换其他登录方式")
break
case "700002":
console.log("用户点击登录按钮")
break
case "700003":
console.log("用户点击checkBox")
break
case "700004":
console.log("用户点击协议")
break
}
},
customUiResult => {
//这里回调的是自定义控件的点击事件,通过 customUiResult.widgetId 来识别自定义控件,然后做一些自己的处理
}
)
},
}
};
</script>
官方文档 https://help.aliyun.com/document_detail/2249365.html?spm=a2c4g.2249835.0.0.80081c8dzJ7Ta9
更多推荐
所有评论(0)