Refresh Access Token¶
使用 Refresh Token 请求一个新的 Access Token。
操作权限¶
用户无需登录 Application Portal。
请求格式¶
GET https://{apigw-address}/app-portal-service/v2.2/token/refresh
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
refreshToken |
Query |
必需 |
String |
Refresh Token。参阅 Choose Organization 获取Refresh Token。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
List<JSONObject> |
登录用户信息。详见 登录用户信息结构体 |
登录用户信息结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
userId |
String |
用户ID。 |
userName |
String |
用户名。 |
workingOrganizationId |
String |
当前组织ID。 |
workingOrganizationName |
String |
当前组织名称。 |
accessToken |
String |
刷新后的 Access Token。 |
refreshToken |
String |
可用于刷新 Access Token 的 Refresh Token。 |
refreshTokenExpire |
Long |
Refresh Token 的过期时间。以UTC时间表示,格式见 UTC采用的ISO8601标准时间格式>> |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
31400 |
Refresh Token is required |
Refresh Token 不能为空 |
31401 |
Please login first |
请先登录,获取正确的 Access Token 和 Refresh Token |
示例¶
请求示例¶
url: https://{apigw-address}/app-portal-service/v2.2/token/refresh?refreshToken=yourRefreshToken
method: GET
返回示例¶
{
"code": 0,
"message": "OK",
"data": {
"userId": "yourUserId",
"userName": "portal_demo",
"workingOrganizationId": "yourOrgId",
"workingOrganizationName": "Portal Demo",
"accessToken": "APP_PORTAL_S_w35R99d92ZX4McYQJQvWp42ydjdj3MjK",
"refreshToken": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1MTU1ODkzMTYxMDkwOTEiLCJhZG1pbkxldmVsIjoyLCJpc3MiOiJBUFAtUE9SVEFMIiwid29ya2luZ09yZ2FuaXphdGlvbklkIjoibzE1NTg5MzA4OTQ0NzgxIiwidXNlck5hbWUiOiJwb3J0YWxfZGVtbyIsIndvcmtpbmdPcmdhbml6YXRpb25OYW1lIjoiUG9ydGFsIERlbW8iLCJleHAiOjE1NzEzNjgzMTUsInVzZXJJZCI6InUxNTU4OTMxNjEwOTA5MSIsImlhdCI6MTU2ODc3NjMxNSwianRpIjoiand0X2lkIn0.XmFet0419rGX6EgKoNjjek6JlYPbeCXWdRrKxY9wwWs",
"refreshTokenExpire": 1571368315000
}
}
Java SDK 调用示例¶
public class AppPortalSdkTest{
@Test
public void refreshAccessTokenTest() {
RefreshTokenRequest refreshTokenRequest = new RefreshTokenRequest(refreshToken);
RefreshTokenResponse refreshTokenResponse = Poseidon.config(PConfig.init().appKey("your_access_key").appSecret("your_secret_key").debug())
.url("https://{apigw-address}").getResponse(refreshTokenRequest, RefreshTokenResponse.class);
System.out.println("Refresh token res: " + JSON.toJSONString(chooseOrganizationResponse));
assertNotNull("Response should not be null", refreshTokenResponse);
assertNotNull("Response data should not be null", refreshTokenResponse.data);
String newAccessToken = refreshTokenResponse.data.accessToken;
assertNotEquals("New access token should not equal original access token", "your_access_token", newAccessToken);
}
}