H5快捷登陆/本机号校验
1.1流程说明
1)业务方 h5 集成取号 js sdk;2)js sdk 向认证服务端发起取号请求,取号成功后认证服务端返回临时凭证、手机号掩码等;3)用户授权并补齐正确的手机号码,授权页面发起请求获取token,认证服务端返回token并返回业务方页面;4)业务方服务端发起token校验请求,认证服务端校验通过后返回输入的手机号是否是本机号;
1.2概览流程
1.3优势对比
1.4技术流程
2. 引入JS
简要描述
<!-- H5快捷登录 -->
<script src="https://static.bitlib.cc/h5/verify-quick.min.js"></script>
3. 初始化 JS SDK 并获取 token
<script>
new QuickLoginManager({ appKey: '填写你的Key'}).init().then(res => {
//resultCode
//msg
//accessCode
//mobile
//userInformation
//operatorType
//traceID
}).catch(error => {
// 出错,请使用其他方式
});
</script>
返回示例
{
"accessCode": "VMHTTPS0893BC46B1FC9B***47029334DA9EC5B",
"mobile": "138****6666",
"userInformation": "TWFjSW50ZWxAQE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpI***cGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS85Ni4wLjQ2NjQuNTUgU2FmYXJpLzUzNy4zNkBAM2UwMmQyZDYzMGUxZDIxZmY2OWEzODkyYjA3MDRiZjk%3D",
"operatorType": "CM",
"traceID": "980D8A599BC***8081D8457AB60EF9AD&",
"msg": "成功",
"resultCode": 0
}
返回参数说明
参数名 | 类型 | 是否必传 | 说明 |
resultCode | int | 否 | 状态码,0:成功,其他状态码为失败 |
msg | string | 否 | 状态码描述信息 |
accessCode | string | 是 | 透传给服务端用于校验用户输入的号码是否为本机号码 |
operatorType | string | 是 | CM / CU / CT,分别表示中国移动,中国联通,中国电信 |
mobile | string | 否 | 脱敏手机号 |
userInformation | string | 是 | 用户信息:仅移动返回该字段 |
traceID | string | 是 | 追踪ID |
4.授权页设计规范(示例)
标准版的授权页面如下:
注意:
- 开发者不得通过任何技术手段,破解授权页,或将授权页面的隐私栏、品牌露出内容隐藏、覆盖。
- 登录按钮文字描述必须包含“登录”或“注册”等文字,不得诱导用户授权。
- 对于接入认证SDK并上线的应用,运营商会对上线的应用授权页面做审查,如果有出现未按要求弹出或设计 授权页面的,将关闭应用的认证取号服务。
隐私协议:
- 中国移动条款名称 **《中国移动认证服务条款》** 地址:https://wap.cmpassport.com/resources/html/contract.html
- 中国联通条款名称:**《联通统一认证服务条款》** 地址:https://opencloud.wostore.cn/authz/resource/html/disclaimer.html?fromsdk=true
- 中国电信条款名称:**《天翼账号服务与隐私协议》** 地址:https://e.189.cn/sdk/agreement/detail.do?hidetop=true
5.常见问题
- 是否支持wifi环境下使用? 答:仅支持数据流量下使用,不支持wifi、热点环境下使用。请提醒用户请勿在wifi环境下使用。
- 用户处于蜂窝数据网络为什么获取token失败? 答:①检查设备是否链接了VPN网络,VPN环境下可能会导致获取token失败;②网络环境差可能会导致取号请求超时。
- 返回“referer校验失败”是什么原因? 答:请检查使用的referer与报备的集成页面地址不完全一致,请使用报备的referer或联系运营同事更换报备地址。
- token校验接口返回“验证签名失败”是什么原因? 答:①使用的公钥与报备内容是否一致;②建议使用RSA工具类生成签名。
- token校验接口返回“userinfomation 校验失败”是什么原因? 答:请检查token校验接口使用的userinfomation与jssdk返回是否完全一致。由于token校验接口的userinfomation 是业务方前端传给业务方后端的,可能由于该字段作为 url parameter,服务端收到后可能会解码导致出错。请业务方收到userinfomation不要解码(案例:jssdk返回的userinfomation中部分“%3d”,经服务端解码后变成了“=”)。
- token校验接口返回“token不存在”、“token失效”是什么原因? 答:可能为token失效,token有效期2分钟。
6.RSA工具类
签名工具包,提供Java、PHP、Node、C#的私钥生成签名及私钥解密方法。 [签名工具包](https://www.au2882.com.cn/RSA/%E7%AD%BE%E5%90%8D%E5%B7%A5%E5%85%B7V1.2.zip)