1.1. SDK信息:
SDK名称:天翼账号认证SDK
最新版本:4.5.6
功能介绍:自动识别本机号码,实现一键登录
开发者:天翼数字生活科技有限公司
为了确保用户在登录过程中将手机号码信息授权给合作方使用的知情权,天翼账号登录认证需要合作方满足如下要求:
(1)合作方在调用登录认证方法前,必须显示出登录页面,登录页面需明确告知用户操作会将用户本机号码信息授权给应用;(天翼账号服务与隐私协议url地址:https://e.189.cn/sdk/agreement/detail.do?hidetop=true)
(2)合作方需展示“天翼账号”品牌露出,不得通过任何技术手段,将登录页面的隐私栏、品牌露出内容隐藏、覆盖;
若有出现未按要求设计登录页面的行为或有非正常调用行为,为了保护用户的隐私安全,我方有权将合作方应用的登录功能下线,由此产生的一切影响由合作方自己承担。
如下是天翼账号标准页面的设计规范,供合作方参考;
为满足以上要求,接入资料中未包含相应的导入包,需合作方将如下信息在开放平台上进行配置,我方即可提供导入包:
(1)一个APPID对应一个应用,故需要提供如下信息,用于校验该APPID对应的应用请求:
Android端:APPID、包名packagename、包签名(签名证书的MD5值)
iOS端:APPID、bundleID(可配置测试和正式的bundleID)
业务方每次调用SDK预登录接口将收集一次个人信息,已对接过的合作方请留意错误码的改动,以防影响正常使用逻辑。
个人信息类字段采集信息/权限情况【行业版本不涉及拓展业务功能(指纹/人脸生物识别认证)】:
个人信息类型 |
采集目的及功能场景 |
处理方式 |
【必选】注册手机号码、本机号码、网络连接类型、网络状态信息、网络地址、运营商类型、手机设备类型、手机设备厂商、手机操作系统类型及版本。 |
通过网络信息完成用户号码登录认证; 通过设备信息,用于确保在不同设备上的兼容性与业务风控。 |
通过去标识化、加密传输和处理的安全处理方式 |
【电信版】【可选】指纹信息/人脸信息 |
为了实现双因子登录功能,即同时使用手机号与生物识别技术共同登录的功能,若不提供则无法进行指纹/人脸登录 |
通过去标识化、加密传输和处理的安全处理方式,人脸/指纹信息在登录后不会进行存储,会将相关信息进行删除/匿名化。 |
功能分类 |
所需对应权限 |
调用权限目的 |
是否可选 |
基本业务功能 |
INTERNET |
允许sdk进行联网 |
必选 |
基本业务功能 |
CHANGE_NETWORK_STATE |
运行sdk改变网络连接状态 |
必选 |
基本业务功能 |
ACCESS_WIFI_STATE |
允许sdk访问wifi网络状态信息 |
必选 |
基本业务功能 |
ACCESS_NETWORK_STATE |
允许sdk访问联网状态,区分用户设备时蜂窝网络或者是wifi网络 |
必选 |
基本业务功能 |
GET_TASKS |
在打开免密页面时,sdk获取堆栈信息判断当前最顶层页面activity是否被覆盖,以提升认证安全。 |
必选 |
【电信版】拓展业务功能 |
USE_FINGERPRINT/CAMERA(生物识别权限/摄像头权限) |
为了实现双因子登录功能,即同时使用手机号与生物识别技术共同登录的功能,我们需要收集您的生物识别(指纹/人脸)结果进行安全校验。 |
电信内部企业可选 |
【电信版】拓展业务功能 |
WRITE_EXTERNAL_STORAGE(外部存储权限) |
为了实现设备锁登录功能,即在新的机器中登录需要双重认证的功能,我们需要使用您在设备存储卡(外部存储权限)保存天翼账号和设备的绑定信息、允许读写系统设置项。 |
电信内部企业可选 |
安卓在AndroidManifest.xml所需配置权限【行业版本不涉及拓展业务功能(指纹/人脸生物识别认证),无需配置权限】:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
(1)初始化SDK(行业版、电信版本必要调用)
【接口说明】
在使用天翼账号SDK接口之前,必须先调用初始化方法(提前1s以上最佳),建议在Application或Activity的onCreate()调用。不建议初始化与预登录接口同时调用。
【调用示例】
CtAuth.getInstance().init(context, APPID , APPSECRET, false);
(2)预登录接口(行业版、电信版本必要调用)
【接口说明】
SDK提供两个预判断方法:
1)判断移动数据网络是否开启
CtAuth.getInstance().isMobileDataEnabled();
返回:
true:表示已开启移动数据网(支持预登录)
false:表示未开启移动数据网(不支持预登录)
2)判断当前运营商类型
CtAuth.getInstance().getOperatorType();
返回:
"CT":电信 , "CM":移动 , "CU":联通 ,"UN":未知
【调用示例】
CtAuth.getInstance().requestPreLogin (null ,new ResultListener() {
@Override
public void onResult(String result) {
Log.i(TAG, "requestPreLogin ---> result : " + result);
}
});
此接口实现了一键同时校验指纹及免密登录的功能
【权限配置】
1)在文件AndroidManifest.xml的<application>外(可以紧贴此上面)添加以下权限(以demo为准,可复制demo内配置):
<!-- 增强免密认证必选权限 -->
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
2)权限说明
权限 |
用途 |
USE_FINGERPRINT |
允许进行指纹识别 |
【示例代码】
ctAuth.setBiometricEnnabled(true); //开启增强免密登录
ctAuth.setBiometricEnnabled(false); //关闭增强免密登录
SDK非必要外部存储权限,若应用本身没有使用该权限,则不需要调用。
权限说明
权限 |
用途 |
WRITE_EXTERNAL_STORAGE |
实现设备锁登录功能,即在新的机器中登录需要双重认证的功能 |