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鉴权方式-请求头格式来设置请求头。