一、申请开通

注意:

(1)审核期间可以使用HBuilder标准基座真机运行调用一键登录功能。

(2)并且一定要记得开启手机流量(与wifi无关,不要求关闭wifi,但数据流量不能禁用。原因啥,可自行百度)。

(3)使用云函数做一键登录时,优先使用云端函数。

1.在开发者中心申请开通一键登录的服务。

 

2.添加应用

 

 注意:应用签名MD5,是需要英文字母全转换成大写。如:173ad72bdxxxx 需要处理成 17:3A:D7:2B:Dxxxx这样的(如果是uniapp 用的自有证书,然后又是用的官方的工具解析出来的签名,需要这样处理一下)

二、云服务相关配置

1.登录uniCloud控制台云服务空间,去创建服务空间,选择云服务商

 

2.在HX中选中项目右键,选择创建云开发环境

 

3.新建云函数 getPhoneNumber

新建成功后在cloudfunctions下面会有一个getPhoneNumber,将以下代码复制过去。

'use strict';

exports.main = async (event, context) => {
	//event为客户端上传的参数
	const res = await uniCloud.getPhoneNumber({
		appid: '__UNI__*****', // 替换成自己开通一键登录的应用的DCloud appid,使用callFunction方式调用时可以不传(会自动取当前客户端的appid),如果使用云函数URL化的方式访问必须传此参数
		provider: 'univerify',
		apiKey: '*******', // 在开发者中心开通服务并获取apiKey
		apiSecret: '**********', // 在开发者中心开通服务并获取apiSecret
		access_token: context.SOURCE!='http'?event.access_token:event.queryStringParameters.access_token,
		openid: context.SOURCE!='http'?event.openid:event.queryStringParameters.openid
	})
 
	// 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端
	// 如果数据库在uniCloud上,可以直接入库
	// 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
	//返回数据给客户端
	return {
		code: 0,
		message: '获取手机号成功',
		data:res
	}
}

注意:云函数对于接收的数据要判断处理,客户端调起时和云函数url使用场景 | uni-app官网化调起时所需参数获取的位置是不一样的,当云函数url化采用的是get请求,那么参数就是在queryStringParameters下,post时是在body下(根据自己的需求去改变获取值的代码)。

4.package.json里面加上uni-clound-verify依赖。原因在于官方的扩展库的调整一键登录@univerify | uni-app官网

 

5. 项目uniCloud目录右键关联云服务空间

 

 

 最后在事件中调用uni.preLogin和uni.login就行了!!!

 最后选择云端函数,打开流量用hbuilder标准基座进行真机测试!!!!!!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐