uni-app接入阿里云认证SDK(号码认证服务),App客户端一键登方式

uni-app接入阿里云认证SDK(号码认证服务)App客户端一键登方式

首先,你需要了解和开通阿里云的号码认证服务,地址:https://help.aliyun.com/product/75010.html

阿里云有App客户端本机号码校验和App客户端一键登方式,我们选用的是App客户端一键登方式

一键登录交互流程主要分为四个步骤:初始化、唤起授权页面、同意授权并登录、服务端取号。在这里插入图片描述

Android端接入方式

  1. 下载插件。
    访问插件地址:阿里云号码认证SDK,进入插件详情页。点击界面右侧的下载for离线打包下载插件。
    在这里插入图片描述

  2. 项目中引入插件。
    a. 在项目的根目录新建nativeplugins文件夹,将下载的AliCloud-NirvanaPns_1.1.0.zip解压后放入nativeplugins文件夹。
    b. 打开根目录manifest.json文件,单击App原生插件配置 > 选择本地插件。
    c. 在本地插件选择对话框,勾选阿里云号码认证SDK。单击确定即可引入。
    在这里插入图片描述

  3. 放进去之后不能立即调试使用,因为我们用了原生的插件,所以你要先制作一个自定义调试基座,然后运行的时候选择使用自定义基座运行,才能正常调试使用。

在这里插入图片描述
这里说一下,因为制作自定义基座也是要走一遍打包流程,所以证书也是不能为空的。

在这里插入图片描述

项目里面使用方法,以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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pony君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值