# 客户端模式

# 概述

​ 业务系统通过客户端模式获取令牌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
  • 响应范例:
{
    "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
  • 请求业务系统接口范例:
GET /api/basis/pub/users/{userId}
Host: server.example.com
1
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
  • 补充说明:

同一业务系统(client_id)反复调用本请求,在获得新access_token之后,原来的access_token即便没有过期,也会失效。