App一键登录服务端对接文档

一键登录流程

1) 客户端通过预取号接口获取 accessCode。

2) 客户端回传 accessCode 至服务端。

3) 服务端通过用户信息接口获取用户信息,并返回客户端。

1. 服务端接口

1.1 置换手机号接口

简要描述

直接用SDK预取号获取的 accessCode 换取用户信息

访问授权说明

IP 授权:是,服务端调用

请求URL

POST https://api.bitlib.cc/api/v1/auth/phone/info

Content-Type:application/json

请求参数示例:

{
    "key":"c08eabb172cd4f61be07b7d361cf9fc7",
    "token":"CFE861FA99844E87A67F86DA8F9693AE",
    "platform":0,
    "operator_type":"CM",
    "auth_code":"9810",
    "timestamp":"1627235775685",
    "trace_id":"t41tFH5HTTPS9D292D981D11B651921B911A65ADD5FB", 
    "sign":"3b1bebfb233617a87ff3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8"
}

请求参数说明:

参数名 必选 类型 是否参与签名 说明
key String 应用 key
token String SDK预取号获取到的 accessCode
platform Int 系统平台,0:iOS 1:Android,如果无法确定可不传,但Android和iOS必须是两个应用!
operator_type String

SDK预取号获取的operatorType

CU:联通,CT: 电信,CM:移动

auth_code String 透传SDK预取号返回的authCode,iOS及Android该参数必传
trace_id String 透传SDK预取号获取的traceId
timestamp String 时间戳
sign String / 参数RSA加密值,加密算法:sign=RSA(key=值\&operator_type=值& timestamp=值\&token=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签

返回示例

{
    "code": 0,
    "msg": "",
    "phone":"bc4c1aceed723941a8e480b898c53b4c"
}

返回参数说明

参数名 类型 说明
code int 状态码,0:成功,其他状态码为失败
msg string 状态码描述信息
phone string 服务端采用业务端提供的公钥加密,业务端需要使用对应的私钥解密

1.2 校验手机号接口

简要描述

直接用SDK预取号获取的 accessCode + 手机号,验证手机号与当前流量卡的手机号是否一致

访问授权说明

IP 授权:是,服务端调用

请求URL POST https://api.bitlib.cc/api/v1/auth/phone/verify

Content-Type:application/json

请求参数示例:

{
    "key":"c08eabb172cd4f61be07b7d361cf9fc7",
    "token":"CFE861FA99844E87A67F86DA8F9693AE",
    "platform":0,
    "operator_type":"CM",
    "auth_code":"9810",
    "mobile_verify":"13900001234",
    "timestamp":"1627235775685",
    "trace_id":"t41tFH5HTTPS9D292D981D11B651921B911A65ADD5FB", 
    "sign":"3b1bebfb233617a87ff3285ef930d21eab74a45bde8e53d2bf3fc60c8ba6f780be3c6e595408f51cbeeadd39dfac7d508628c094e81e8ca3b3f0b392b1e255aa9b5c5c6bbbf488797fc67aa9a873dd97e2de6e87ab1549ee5fef2b630e429560aaad3e368123ddb78fb872b610ba5b925b923bf71e500c63eb71e1715519ecf8"
}

请求参数说明:

参数名 必选 类型 是否参与签名 说明
key String 应用 key
token String SDK预取号获取到的 accessCode
platform Int 系统平台,0:iOS 1:Android,如果无法确定可不传,但Android和iOS必须是两个应用!
operator_type String

SDK预取号获取的operatorType

CU:联通,CT: 电信,CM:移动

auth_code String 透传SDK预取号返回的authCode,iOS及Android该参数必传
trace_id String 透传SDK预取号获取的traceId
mobile_verify String 待校验的手机号
timestamp String 时间戳
sign String / 参数RSA加密值,加密算法:sign=RSA(key=值\&operator_type=值& timestamp=值\&token=值,RSA_Private_key) 转16进制大写,签名算法为:SHA256withRSA。需要注意参数拼接 key升序排序,密钥格式为PSKCS#8,1024位(bit)。其中 RSA_Private_key是合作方的RSA 私钥,合作方需要向平台提供RSA 公钥,用于访问接口时的验签

返回示例

{
    "code": 0,
    "msg": "",
    "verify":"bc4c1aceed723941a8e480b898c53b4c"
}

返回参数说明

参数名 类型 说明
code int 状态码,0:成功,其他状态码为失败
msg string 状态码描述信息
verify string 服务端采用业务端提供的公钥加密,业务端需要使用私钥解密,解密结果值: 0:一致;1:不一致;2:无法判断

2. 状态码说明

状态码 说明 原因
-1 系统异常 未处理的异常信息,通常不会发生
-2 处理失败 失败原因请参见msg说明
-3 参数无效 无效的参数请参见msg说明
-4 余额不足 需要充值
100007 应用无效 检查应用Key是否正确
100008 一键登录权限未开通 联系运营人员开通
100009 号码认证权限未开通 联系运营人员开通
100010 参数为空 缺少必要参数,请参见msg说明
100021 服务端请求参数验签失败 签名工具参考下方的签名工具包
100022 ip白名单校验失败 检查返回的IP是否已配置到Dashboard中
100028 无法确定运营商 检查channel字段是否正确上报
200010 token校验错误 非运营商返回的token
200011 验签失败 运营商侧验签失败,需要联系运营人员
200012 token已失效 token有效期,移动:2分钟,联通:30分钟,电信:60分钟
200013 未获取到数据 token已被使用
200014 运营商key不一致 获取token的key与置换使用的key不一致
200020 未定义异常 需查看具体的msg信息

3. 相关工具

公私钥生成及RSA工具类请参考开发工具包中的: RSA帮助文档

results matching ""

    No results matching ""