OAuthToken鉴权方式说明

更新时间:2022-04-29 00:12:43

1.OAuthToken鉴权简介

e签宝 API 网关对每次接口请求都进行调用鉴权验证,在调用API时,开发者需要使用应用ID(AppID )和应用密钥(AppSecret )获取 Token 访问令牌,并将Token 访问令牌添加到Header请求头的 X-Tsign-Open-Token 参数中传输给e签宝 API 网关进行 Token 有效性验证。e签宝 API 网关会对接收到的 Token 进行真实性和有效期进行核对,若 Token 真实性或有效期不正确,视为无效 Token 访问令牌,将拒绝本次API请求。

e签宝不推荐开发者使用 OAuthToken 鉴权方式调用 API 接口。

2.OAuthToken获取说明

2.1 Token访问令牌获取

接口描述

使用应用ID(AppID )和应用密钥(AppSecret )获取 Token 访问令牌。

  • Token 访问令牌仅120分钟有效,多次获取 Token 访问令牌会造成旧 Token 访问令牌有效期变为5分钟。
    • 举例:连续获取100个授权码Token(T1,T2,……,T99,T100),此时T1-T98个Token属于失效Token无权调用接口。而T99个Token有效时长为5分钟,T100个Token有效时长为120分钟。
  • 若开发者属于分布式部署,同时有多台服务器调用 API 接口时,需要集中管理 Token 访问令牌的获取和共享,确保所有服务器使用的 Token 访问令牌唯一。

接口地址&请求方法

接口地址:https://{host}/v1/oauth2/access_token

请求方法:GET

请求头格式:无需请求头

请求参数

参数名称

参数类型

必选

参数

位置

参数说明

appId

string

query

应用ID,通过e签宝开放平台获取。

secret

string

query

应用Secret,妥善保管不可泄露,通过e签宝开放平台获取。

grantType

string

query

授权类型,固定值: client_credentials。

响应参数

展开全部参数参数名称

参数

类型

必选

参数说明

code

int

业务码,0表示成功

message

string

业务信息

请根据 code 来判断错误情况,不应该依赖 message

匹配,因为 message 可能会调整。

data

object

业务数据


token

string

token 访问令牌,有效期120分钟。

注意:请在 expiresIn 参数的有效截止时间失效前重新获取token,建议提前5分钟重新获取。

expiresIn

string

token 访问令牌有效期截止时间(毫秒时间戳)

refreshToken

string

刷新 token 访问令牌的授权码。

token 访问令牌即将过期时需用此重新获取新 token 访问令牌。

请求示例

https://{host}/v1/oauth2/access_token?appId=111156XX41&secret=753b9XXXXXXXXXX3e3374c1&grantType=client_credentials

POSTMAN示例

响应示例

{
    "code":0,
    "message":"成功",
    "data":{
        "expiresIn":"1569211376807",
        "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJnSWQiOiI4N2I4YmJhNGY2N2U0ZjRiODQ3Njc2M2FmNTRjZGYxYSIsImFwcElkIjoiNDQzODc3MTgwOSIsIm9JZCI6ImJiZDNlYTExZWY0ZDQyNmI4NTYzNDhmYjg1MDYxM2ZmIiwidGltZXN0YW1wIjoxNTY5MjA0MTc2ODA2fQ.tiXdZeKPNWFrbt-i3fJfe8YiSIeouEIyt9i8TdQ85-Q",
        "refreshToken":"64924e629bc5923172dec8fca019fba9"
    }
}

2.2 使用 refreshToken 刷新 Token 访问令牌

接口描述

在 token 访问令牌过期前,通过 refreshToken 获取新 token 访问令牌

  • 新获取的 Token 访问令牌仅120分钟有效,多次获取 Token 访问令牌会造成旧 Token 访问令牌有效期变为5分钟。
    • 举例:连续获取100个授权码Token(T1,T2,……,T99,T100),此时T1-T98个Token属于失效Token无权调用接口。而T99个Token有效时长为5分钟,T100个Token有效时长为120分钟。
  • 若开发者属于分布式部署,同时有多台服务器调用 API 接口时,需要集中管理 Token 访问令牌的获取和共享,确保所有服务器使用的 Token 访问令牌唯一。

接口地址&请求方法

接口地址:https://{host}/v1/oauth2/refresh_token

请求方法:GET

请求头格式:无需请求头

请求参数

参数名称

参数

类型

必选

参数

位置

参数说明

appId

string

query

应用ID,通过e签宝开放平台获取。

refreshToken

string

query

刷新 Token 访问令牌的授权码。

grantType

string

query

授权类型,固定值 refresh_token。

响应参数

展开全部参数参数名称

参数

类型

必选

参数说明

code

int

业务码,0表示成功

message

string

业务信息

请根据 code 来判断错误情况,不应该依赖 message

匹配,因为 message 可能会调整。

data

object

业务数据


token

string

token 访问令牌,有效期120分钟。

注意:请在 expiresIn 参数的有效截止时间失效前重新获取token,建议提前5分钟重新获取。

expiresIn

string

token 访问令牌有效期截止时间(毫秒时间戳)

refreshToken

string

刷新 token 访问令牌的授权码。

token 访问令牌即将过期时需用此重新获取新 token 访问令牌。

请求示例  

GET https://{host}/v1/oauth2/refresh_token?appId=4438771809&refreshToken=d1feeb03c7a635f11032d8f906e83b46&grantType=refresh_token

Postman请求示例

响应示例

{
    "code": 0,
    "message": "成功",
    "data": {
        "expiresIn": "1569212685506",
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJnSWQiOiI4N2I4YmJhNGY2N2U0ZjRiODQ3Njc2M2FmNTRjZGYxYSIsImFwcElkIjoiNDQzODc3MTgwOSIsIm9JZCI6ImJiZDNlYTExZWY0ZDQyNmI4NTYzNDhmYjg1MDYxM2ZmIiwidGltZXN0YW1wIjoxNTY5MjA1NDg1NTA1fQ.pVUxWk7VskA6vo5ePQ1YWsIxLZh95xt57AvMoRbnaYs",
        "refreshToken": "4db9a6c275a089ae04315631d177aa8a"
    }
}

3.使用OAuthToken鉴权方式调用具体API接口

开发者请查阅接口文档中某个具体 API 的描述进行相关接口调用,HTTP请求发送时请参考OAuthToken鉴权方式-请求头格式来设置请求头。

我要纠错