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);
}
}