H5_小程序_快应用 快速认证

用户8695 最后一次编辑

H5/小程序/快应用

一键登录流程

1) 客户端通过预取号接口获取 accessCode;
2) 客户端回传 accessCode 至服务端;
3) 服务端通过用户信息接口获取用户信息,并返回客户端。
 温馨提示
文档中所有接口均在服务端调用,校验IP白名单及签名校验。

1. 预取号接口

简要描述
该方法用于获取 accessCode, accessCode 将用于号码认证接口
访问授权说明 IP 授权:否, SDK 客户端封装使用,接受请求重定向
请求URL
POST http://***/api/v1/***   (具体请求地址咨询商务经理)
Content-Type:application/json
请求参数示例
{ "key":"813994709c7****e7390143e230851", "platform":1, "timestamp":"161512***70076", "packname":"cn.bitlib.demo", "packsign":"dbc58e3e9d***79ad91f294acc3551e3", "format":"json", "sign":"3b1bebfb2336***3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8" }
请求参数说明
该接口如果请求成功会先返回302重定向,从Header中获取Location用于重定向请求,重定向的请求才会返回如下结果。 该接口如果请求失败则会返回相应的状态码及错误信息。
参数名必选类型是否参与签名说明
keyString应用 key
keyplatformIntegeriOS(0)Android(1)根据客户端类型传相应的参数
bundleidString平台 Bundle ID 必填,如果是H5,可不传该参数
packnameStringAndroid 平台 apk 包名必填,如果是H5,可不传该参数
packsignStringAndroid平台 apk 签名必填,如果是H5,可不传该参数
formatString预取号返回结果类型,默认返回jsonp格式,如需返回json,请传值“json”
callbackStringformat参数如果不为json,则返回默认的jsonp请求,用于解决H5跨域请求问题,此时callback的默认返回值为reply,可通该参数自定义callback名称。format参数如果为json,则该参数始终返回空字符串。
timestampString时间戳
signString/参数RSA加密值,加密算法:sign=RSA(key=值\&platform=值& timestamp=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签、
该接口如果请求成功会先返回302重定向,从Header中获取Location用于重定向请求,重定向的请求才会返回如下结果。 该接口如果请求失败则会返回相应的状态码及错误信息。
返回示例 成功:
{ "code":"0", "msg:"", "accessCode":"419e6dacb191411297ec609184792a52", "operatorType":"CM", "mobile":"139****1234" }
失败:
{ "code":"-2", "msg:"错误信息" }
返回参数说明
参数名类型说明
codeint状态码,0:成功,其他状态码为失败
msgstring返回状态描述,code 不为 0 对应错误描述
accessCodestring授权码,成功时返回,用于号码认证
operatorTypestring运营商标识,成功时返回,用于号码认 证, CU 代表联通,CT 代表电信,CM 代表移动
mobilestring脱敏手机号 139_****_1234
msgIdstring随机表示,code 不为 0 对应错误描述

2. 置换手机号接口

简要描述
直接用预取号获取的 accessCode 换取用户信息
访问授权说明 IP 授权:是,服务端调用
请求URL
POST http://***/api/v1/*** (具体请求地址咨询商务经理)
Content-Type:application/json
请求参数示例:
{ "key":"813994709c7***2f2e7390143e230851", "code":"0", "token":"419e6dacb1914***97ec609184792a52", "operator_type":"CM", "mobile":"139****1234", "msg":"调用成功", "msg_id":"", "timestamp":"1615***070076", "sign":"3b1bebfb233617a***f3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8" }
请求参数说明:
参数名必选类型是否参与签名说明
key是 String应用 key
codeString接口 precheck 返回值
tokenStringprecheck获取到的 accessCode (code=0 时必填)
mobileString接口 precheck 返回值,脱敏手机号(code=0时必填)
msgString接口 precheck 返回值
msg_idString 接口 precheck 返回值,或标识请求随机数
timestampString 时间戳
signString/参数RSA加密值,加密算法:sign=RSA(key=值\&mobile=值\&operator_type=值& timestamp=值\&token=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签
返回示例
{ "code": 0, "msg": "", "phone":"bc4c1aceed723941a8e480b898c53b4c" }
返回参数说明
参数名类型说明
codeint状态码,0:成功,其他状态码为失败
msgstring状态码描述信息
phonestring 服务端采用业务端提供的公钥加密,业务端需要使用私钥解密

3. 校验手机号接口

简要描述
直接用预取号获取的 accessCode 验证用户号码
访问授权说明 IP 授权:是,服务端调用
请求URL
POST http://***/api/v1/auth/verify   (具体请求地址咨询商务经理)
Content-Type:application/json
请求参数示例:
{ "key":"813994709***412f2e7390143e230851", "code":"0", "token":"419e6da***91411297ec609184792a52", "operator_type":"CU", "mobile":"139****1234", "msg":"调用成功", "msg_id":"", "mobile_verify":"13900001234", "timestamp":"16151***70076", "sign":"3b1bebfb2336***87ff3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8" }
请求参数说明:
参数名必选类型是否参与签名说明
keyString是 应用key
codeString接口 precheck 返回值
token String接口 precheck获取到的 accessCode (code=0 时必填)
operator_typeString接口 precheck 返回值,SDK 侧 接口获取,CU:联通,CT: 电信,CM:移动(code=0 时必填)
mobileStringprecheck 返回值,脱敏手机号(code=0时必填)
msgString接口 precheck 返回值
msg_idString接口 precheck 返回值,或标识请求随机数
mobile_verifyString待校验的手机号
timestampString时间戳
sifnString/参数RSA加密值,加密算法:sign=RSA(key=值\&mobile=值\&operator_type=值& timestamp=值\&token=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签
返回示例
{ "code": 0, "msg": "", "verify":"bc4c1aceed723941a8e480b898c53b4c" }
返回参数说明
参数名类型说明
codeint 状态码,0:成功,其他状态码为失败
msgstring状态码描述信息
verifystring服务端采用业务端提供的公钥加密,业务端需要使用私钥解密,解密结果值: 0:一致;1:不一致;2:无法判断

4.相关工具

4.1公私钥生成

公私钥在线生成 公私钥对生成说明:

4.2 RSA工具类

签名工具包,提供Java、PHP、Node、C#的私钥生成签名及私钥解密方法。 签名工具包