员工身份(EIAM)

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

# 请求示例

{
    "grant_type": "client_credentials",
    "client_id": "ZUSQzclVGYF",
    "client_secret": "fnH5one7AmxPbl6ky6VHuFBNYQ88vAdvu0"
}
1
2
3
4
5

# 返回参数

参数 填写参考
access_token 访问凭证
token_type token类型
expires_in 有效时间
scope oauth2的作用域
id_token jwt格式的权限信息

# 返回示例

{
    "access_token": "f7a815eb-c546-4052-b099-b554de1436c7",
    "token_type": "bearer",
    "expires_in": 764,
    "scope": "all",
    "id_token": "eyJraWQiOiJrMSIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJJc3N1ZXIiLC"
}
1
2
3
4
5
6
7

# 换取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

# 请求示例

{
    "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"
}
1
2
3
4
5
6

# 返回参数

属性名 子属性 参数说明
code 返回码 成功:0
message 返回信息【失败时,会记录失败原因】
data expire ssoTicket 失效剩余时间 单位为 秒
ssoTicket ssoTicket【用于app内小程序sso时获取用户信息】

# 返回示例

{
    "code": "0",
    "message": "success",
    "data": {
        "expire": 299,
        "ssoTicket": "ssoTicket-p2WBMUCXaOGSQDzzMPYdqLvKvZcAe0yC"
    }
}
1
2
3
4
5
6
7
8

# 校验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

# 请求示例

{
    "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"
}
1
2
3
4
5
6

# 返回参数

属性名 子属性 参数说明
code 返回码 成功:0
message 返回信息【失败时,会记录失败原因】
data userInfo 用户信息

# 返回示例

{
	"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"
		}
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 刷新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

# 请求示例

{
	"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"
}
1
2
3
4
5
6

# 返回参数

属性名 子属性 参数说明
code 返回码 成功:0
message 返回信息【失败时,会记录失败原因】
data sessionToken 会话令牌

# 返回示例

{
	"code": "0",
	"message": "success",
	"data": {
		"sessionToken": "lqIprZxbyUelLbn5Yos33o8TeVnoZJFH"
	}
}
1
2
3
4
5
6
7

# 登录保持

sessionToken的过期时间是可设置的(参考Access Token有效期配置),如果需要保持登录,建议APP服务端自行做刷新同步处理。

建议在sessionToken即将过期的前一天或者前三天进行刷新调用,从而保证sessionToken永远都是可用状态。

以上只是建议,调用方也可根据自己的实际业务应用场景进行设定刷新时间。