# 客户端模式
# 概述
业务系统通过客户端模式获取令牌access_token。
# 业务系统接入场景说明
平台或业务系统的API在平台注册之后(即认为是平台的API),可以对其他应用系统进行授权(目前平台暂无此功能)。
需调用API的业务系统使用平台分配的客户端ID和客户端secret调用"获取令牌(客户端模式)"接口获取token,然后在调用平台API接口时,带上该token以确认业务系统的身份。平台(应)根据该 token判断该业务系统是否具备调用该API的权限。
所有服务接口都需要带上token进行调用。
业务系统应通过“更新令牌(客户端模式)”接口定期更新本业务系统的token。过期的token将被认为是越权访问。
# 接口说明
# 获取/更新令牌(客户端模式)
客户端模式获取令牌。
# 请求路径:
/nepoch-oidc/token
# 请求方法:
POST
# 请求参数:
参数 | 是否必须 | 说明 |
---|---|---|
grant_type | 是 | 授权模式,固定为 "client_credentials" |
scope | 是 | 可选值:"openid email offline_access profile" |
client_id | 是 | 客户端ID |
client_secret | 是 | 客户端SECRET |
# 返回信息:
名称 | 类型 | 字段名 |
---|---|---|
access_token | String | 请求token |
token_type | String | token类型 |
expires_in | String | token过期时间(单位:秒) |
scope | String | 授权范围(暂不使用) |
# 示例
- 获取token请求范例:
POST /nepoch-oidc/token?client_id=XXX&client_secret=XXXXXX&grant_type=client_credentials
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
1
2
3
2
3
- 响应范例:
{
"access_token": "eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJnbGluayIsImF6cCI6ImdsaW5rIiwiaXNzIjoiXC9uZXBvY2gtb2lkY1wvIiwiZXhwIjoxNjE2NTg4NjA3LCJpYXQiOjE2MTY1ODUwMDcsImp0aSI6IjNmYmMzNjQ0LTdiMDktNDkwMS1hODYxLTc5ZWZhZDI3ZjUzMCJ9.LF0w4gzHT_LsKFhznxAHQ2suRfk9TeJuH-Bs061RaQcVVecVsqv9ScGu0rXmX5zxUcQezQ39bFQK6emc4LPfRdsBjApaf9NVGEJqLWGNReU9vUzQHxvJOeSndInv9s40CBPTQXMYfCkZMWMyg_B0ySLz6JrtaDQlp-_aMOwz38EnyrJmOaUWnJ9C2hS1aPtieEdPa46iBnuJiXpLhTuVS0cO1mMkSmOETqbqOWSOWVMi8gED1o5ThbK0A5QWaZ23Jf1RAjlXcm9MNkbTeMry-RVD36B_a_OlcZ8V3RMjwI0TMiVxEX2zl5FbPKpEDeWivBx-MlSXMp96Z4W0CfVHVQ",
"token_type": "Bearer",
"expires_in": 3599,
"scope": "address phone openid email profile offline_access"
}
1
2
3
4
5
6
2
3
4
5
6
- 请求业务系统接口范例:
GET /api/basis/pub/users/{userId}
Host: server.example.com
1
2
2
- 响应范例:
{
"uuid": "f94900e3-731b-41b0-8b1c-640bcb390e3c",
"code": "000000",
"msg": "成功",
"data": [
{
"id": "1",
"code": "GLDGS",
"type": 11,
"name": "管理员",
"parentId": "1",
"treePath": "1/1/",
"namePath": "广联达公司/管理员",
"dimId": "2",
"orderNum": null,
"fullName": null,
"levelType": null,
"providerId": null,
"virtually": null,
"gender": "2",
"leader": "0",
"mainPosition": true,
"account": "admin",
"mobile": "15229009012",
"relationKey": null,
"relationParentKey": null,
"hasChild": false,
"children": []
}
],
"ok": true
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- 补充说明:
同一业务系统(client_id)反复调用本请求,在获得新access_token之后,原来的access_token即便没有过期,也会失效。
← 授权码模式 密码模式(不推荐使用) →