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