极光手机号码一键登录(必读文档)

极光认证对接前必读文档

 
一键登录逻辑
1、调用极光SDK初始化API:init(建议用带初始化完成回调的init方法)
2、调用SDK获取初始化状态API,判断初始化是否完成
3、初始化完成的前提下,判断网络环境是否支持 checkVerifyEnable API(android) /   checkVerifyEnable API(iOS)
4、在手机网络环境支持的前提下,调用一键登录预取号接口 preLogin(android)/ preLogin(iOS) 「强登录情况可不调用预取号接口,跳过此步骤」
5、在预取号成功的前提下,请求授权一键登录 loginAuth(android)/getAuthorizationWithController(iOS)
「一键登录默认超时时间10s,可以自行设置超时时间」
6、请求授权后获取到logintoken上传到服务端
7、服务端使用一键登录loginTokenVerify API接口获取加密后的手机号码
8、使用配置在极光的公钥对应的私钥自行进行解密得到明文手机号码
 
号码认证逻辑
1.调用极光SDK初始化API:init(建议用带初始化完成回调的init方法)
2.判断初始化是否成功,在极光SDK初始化完成的前提下,判断网络环境是否支持 checkVerifyEnable API(android) /   checkVerifyEnable API(iOS)
3.在网络环境成功的前提下,调用getToken接口获取号码认证token,上传到服务端
4.服务端调用Verify API验证已知的手机号码是否跟客户手机sim卡号码是否一致
 
OPPO机子网络权限特殊处理
「 2.5.2版本以后在OPPO设备上申请数据网络权限逻辑改为默认关闭,需用代码手动打开。(因oppo厂商是不允许第三方SDK默认获取该权限,需要开发者自行打开获取该权限),考虑到OPPO机型的一键登录调用量,强烈建议开发者增加该权限获取。 」
 

2.6.2及以上版本处理方法

复制代码
//需要在init之前调用
	try
		{
			Class loadClass= JVerificationInterface.class;
			Method method= loadClass.getDeclaredMethod("setControlWifiSwitch",boolean.class);
			method.setAccessible(true);
			method.invoke(loadClass,false);
		}
		catch(Throwable e)
		{
			e.printStackTrace();
		}
	}
复制代码

2.5.2到2.6.2版本处理方法

复制代码
//需要在init之前调用
try {
VerifySDK instance = VerifySDK.getInstance();
Class vsdk = Class.forName("cn.jiguang.verifysdk.api.VerifySDK");
Field ctrlSwitch = vsdk.getDeclaredField("controlWifiSwitch");
ctrlSwitch.setAccessible(true);
ctrlSwitch.set(instance, false);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
复制代码

 

posted @   麻大哈  阅读(448)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示