Refresh Access Token

登录 Application Portal 并选择进入的组织后,使用获取的 Refresh Token,刷新 Access Token。

请求格式

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