From 7434c4fd851bc6c8782f050478d96ed6699ec089 Mon Sep 17 00:00:00 2001 From: houzhongjian <houzhongyi@126.com> Date: 星期一, 03 三月 2025 16:09:17 +0800 Subject: [PATCH] 平台授权SDK --- sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java | 20 ++++++++++++++++++-- 1 files changed, 18 insertions(+), 2 deletions(-) diff --git a/sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java b/sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java index e8d4772..0f1e655 100644 --- a/sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java +++ b/sdk/src/main/java/com/iailab/sdk/auth/client/IailabAuthClient.java @@ -1,6 +1,7 @@ package com.iailab.sdk.auth.client; import com.fasterxml.jackson.databind.ObjectMapper; +import com.iailab.sdk.auth.client.dto.TokenDTO; import com.iailab.sdk.auth.client.vo.AuthLoginReqVO; import com.iailab.sdk.auth.config.AuthProperties; import org.springframework.core.ParameterizedTypeReference; @@ -50,7 +51,7 @@ /** * 用户名密码方式获取平台token */ - public static synchronized void authenticate() throws Exception { + public static synchronized TokenDTO authenticate() throws Exception { System.out.println("登录获取平台token"); // 1.1 构建请求头 HttpHeaders headers = new HttpHeaders(); @@ -81,9 +82,10 @@ accessToken = authMap.get("access_token").toString(); refreshToken = authMap.get("refresh_token").toString(); expireTime = Long.valueOf(authMap.get("expires_time").toString()); + return handleResponse(exchange); } - public static synchronized void refreshToken() throws Exception { + public static synchronized TokenDTO refreshToken() throws Exception { System.out.println("刷新token"); // 1.1 构建请求头 HttpHeaders headers = new HttpHeaders(); @@ -111,6 +113,7 @@ accessToken = authMap.get("access_token").toString(); expireTime = Long.valueOf(authMap.get("expires_time").toString()); } + return handleResponse(exchange); } private static void addClientHeader(HttpHeaders headers) { @@ -122,4 +125,17 @@ headers.set("tenant-id", authProperties.getTenantId()); } + // 统一处理响应 + private static <T> TokenDTO handleResponse(ResponseEntity<T> response) { + Assert.isTrue(response.getStatusCode().is2xxSuccessful(), "响应必须是 200 成功"); + System.out.println(response); + TokenDTO authTokenDTO = new TokenDTO(); + Map<String, Object> authMap = (Map<String, Object>)response.getBody(); + Map<String, Object> tokenData = (Map<String, Object>)authMap.get("data"); + authTokenDTO.setAccessToken(tokenData.get("accessToken").toString()); + authTokenDTO.setRefreshToken(tokenData.get("refreshToken").toString()); + authTokenDTO.setExpiresTime(Long.valueOf(tokenData.get("expiresTime").toString())); + return authTokenDTO; + } + } \ No newline at end of file -- Gitblit v1.9.3