APP服务端开发
获取API访问凭证接口
| 说明 | 示例 |
|---|---|
| 请求url | https://{domain}/api/oap/oauth/token |
| 请求方式 | POST |
请求参数
| 参数 | 说明 |
|---|---|
| grant_type | 固定值client_credentials,OAuth的客户端模式 |
| client_id | API提供者分配的client_id |
| client_secret | API提供者分配的client_secret |
请求示例
json
{
"grant_type": "client_credentials",
"client_id": "ZUSQzclVGYF",
"client_secret": "fnH5one7AmxPbl6ky6VHuFBNYQ88vAdvu0"
}
```xml
### 返回参数
<span style="display:inline-block;width:80px">参数</span> |<span style="display:inline-block;width:200px">填写参考</span>
:---|:---
access_token |访问凭证
token_type |token类型
expires_in| 有效时间
scope |OAuth 2.0 的作用域
id_token |JWT格式的权限信息
### 返回示例
```json
{
"access_token": "f7a815eb-c546-4052-b099-b554de1436c7",
"token_type": "bearer",
"expires_in": 764,
"scope": "all",
"id_token": "eyJraWQiOiJrMSIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJJc3N1ZXIiLC"
}换取ssoTicket接口
| 参数 | 接口url |
|---|---|
| 请求url | /api/oap/v1/SSO/session_ticket |
| 请求方式 | POST |
请求参数
| 参数名 | 中文名称 | 是否必须 | 示例值 |
|---|---|---|---|
| sessionToken | sessionToken有效期约定为30 天,用于换取ssoTicket | 必须 | r5ysOPTCBLU1 |
| operatingSysVersion | 请求方User-Agent | 必须 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212Safari/537.36 |
| device_ip | 终端设备ip | 必须 | 192.168.1.1 |
| device_fingerprint | 终端设备指纹(能够唯一识别终端设备) | 必须 | qaws12fr45mjy7 |
请求示例
json
{
"sessionToken": "NPb1iZc11TKmgiefSYWrFnvT2DBhFPIX",
"operatingSysVersion": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36",
"device_ip": "121.60.119.225",
"device_fingerprint": "156aysdna213sc"
}
```xml
### 返回参数
<span style="display:inline-block;width:80px">属性名</span>| <span style="display:inline-block;width:80px">子属性</span> | <span style="display:inline-block;width:200px">参数说明</span>
:---|:---|:---
code || 返回码 成功:0
message || 返回信息【失败时,会记录失败原因】
data| expire| ssoTicket 失效剩余时间 单位为 秒
|ssoTicket |ssoTicket【用于app内小程序SSO时获取用户信息】
### 返回示例
```json
{
"code": "0",
"message": "success",
"data": {
"expire": 299,
"ssoTicket": "ssoTicket-p2WBMUCXaOGSQDzzMPYdqLvKvZcAe0yC"
}
}校验ssoTicket接口
| 参数 | 接口url |
|---|---|
| 请求url | /api/oap/v1/SSO/session_ticket-validate |
| 请求方式 | POST |
请求参数
| 参数名 | 中文名称 | 是否必须 | 示例值 |
|---|---|---|---|
| ssoTicket | SSO票据, 有效期为300秒 | 必须 | ssoTicket-p2WBM |
| operatingSysVersion | 请求方User-Agent | 必须 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 |
| device_ip | 终端设备ip | 必须 | 192.168.1.1 |
| device_fingerprint | 终端设备指纹(能够唯一识别终端设备) | 必须 | qaws12fr45mjy7 |
请求示例
json
{
"ssoTicket": "ssoTicket-7Ddh7KhsBKBgPuN82IVHZVDc6DPm8Jxh",
"operatingSysVersion": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36",
"device_ip": "121.60.119.225",
"device_fingerprint": "156aysdna213sc"
}
```xml
### 返回参数
<span style="display:inline-block;width:80px">属性名</span> |<span style="display:inline-block;width:80px">子属性</span>| <span style="display:inline-block;width:200px">参数说明</span>
:---|:---|:---
code| | 返回码 成功:0
message | |返回信息【失败时,会记录失败原因】
data| userInfo| 用户信息
#### 返回示例
```json
{
"code": "0",
"message": "success",
"data": {
"userInfo": {
"id": "20201119181527383-7B3B-0571E338A",
"name": "lx4321",
"userName": "lx4321",
"mobile": "15907154321",
"email": "1014321@qq.com",
"age": 18,
"gender": 0,
"nick_name": "lxx",
"head_url": "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKLb4AJez",
"realStatus": "PERSONAL",
"join_date": "2020-11-19T10:15:27.000Z"
}
}
}刷新sessionToken接口
| 参数 | 接口url |
|---|---|
| 请求url | /api/oap/v1/SSO/refreshSessionToken |
| 请求方式 | POST |
请求参数
| 参数名 | 中文名称 | 是否必须 | 示例值 |
|---|---|---|---|
| sessionToken | 原sessionToken, 用来换取新的sessionToken | 必须 | Mkkp1xSB4Wqj3 |
| operatingSysVersion | 请求方User-Agent | 必须 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212Safari/537.36 |
| device_ip | 终端设备ip | 必须 | 192.168.1.1 |
| device_fingerprint | 终端设备指纹(能够唯一识别终端设备) | 必须 | qaws12fr45mjy7 |
请求示例
json
{
"sessionToken": "Yst40OUIo7zghBH3pFEniuSINGbLHzU3",
"operatingSysVersion": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 90.0 .4430 .212 Safari / 537.36 ",
"device_ip ": "121.60 .119 .225 ",
"device_fingerprint": "156aysdna213sc"
}
```xml
### 返回参数
<span style="display:inline-block;width:80px">属性名</span> |<span style="display:inline-block;width:80px">子属性</span>| <span style="display:inline-block;width:200px">参数说明</span>
:---|:---|:---
code || 返回码 成功:0
message || 返回信息【失败时,会记录失败原因】
data |sessionToken |会话令牌
### 返回示例
```json
{
"code": "0",
"message": "success",
"data": {
"sessionToken": "lqIprZxbyUelLbn5Yos33o8TeVnoZJFH"
}
}登录保持
sessionToken的过期时间是可设置的(参考Access Token有效期配置),如果需要保持登录,建议APP服务端自行做刷新同步处理。
建议在sessionToken即将过期的前一天或者前三天进行刷新调用,从而保证sessionToken永远都是可用状态。
以上只是建议,调用方也可根据自己的实际业务应用场景进行设定刷新时间。