diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 1a0aaec..df338e2 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -23,7 +23,6 @@ diff --git a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt index 0d764ec..21567cb 100644 --- a/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt +++ b/foudations/mogo-network/src/main/java/com/mogo/cloud/network/interceptor/HttpPassportInterceptor.kt @@ -1,6 +1,9 @@ package com.mogo.cloud.network.interceptor +import com.mogo.cloud.network.BaseData +import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.utils.logger.Logger +import com.mogo.utils.network.utils.GsonUtil import okhttp3.Interceptor import okhttp3.MediaType import okhttp3.Response @@ -26,7 +29,16 @@ class HttpPassportInterceptor : Interceptor { bodySize = if (contentLength != -1L) "$contentLength-byte" else "unknown-length" contentType = responseBody.contentType() responseContent = responseBody.string() - Logger.d("响应结果", "responseContent:$responseContent") + val response: BaseData<*>? = GsonUtil.objectFromJson(responseContent, BaseData::class.java) + // 处理Token异常 + if (response?.code == 100046 || + response?.code == 100045 || + response?.code == 100005 || + response?.code == 100006 || + response?.code == 520003) { + Logger.d("HttpPassportInterceptor", "Token 异常:$response") + MoGoAiCloudClient.getInstance().refreshToken() + } consumedResponse = true } return if (consumedResponse) response.newBuilder().body(ResponseBody.create(contentType, responseContent)).build() else response diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java index ea1c6b0..c689134 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java @@ -72,6 +72,8 @@ public class MoGoAiCloudClient { } public void refreshToken() { + Log.i(TAG, "═══════════════刷新Token═════════════"); + if (mAiCloudClientConfig != null) { ThirdLoginParam thirdLoginParam = ThirdLoginParam.of( mAiCloudClientConfig.getThirdPartyDeviceId(), @@ -90,13 +92,10 @@ public class MoGoAiCloudClient { Log.i(TAG, "║ Token:" + result.token); Log.i(TAG, "═════════════════════════════════════"); - // 本地存储 - SpStorage.setSn(result.sn); - SpStorage.setToken(result.token); // 变量赋值 if (mAiCloudClientConfig != null) { - mAiCloudClientConfig.sn = result.sn; - mAiCloudClientConfig.token = result.token; + mAiCloudClientConfig.setSn(result.sn); + mAiCloudClientConfig.setToken(result.token); } // 循环调用将数据传出去 @@ -126,8 +125,8 @@ public class MoGoAiCloudClient { Log.e(TAG, "═════════════════════════════════════"); // 变量赋值 if (mAiCloudClientConfig != null) { - mAiCloudClientConfig.sn = ""; - mAiCloudClientConfig.token = ""; + mAiCloudClientConfig.setSn(""); + mAiCloudClientConfig.setToken(""); } for (IMoGoTokenCallback tokenCallback : mTokenCallbacks) { tokenCallback.onError(code, msg); diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java index 941fefe..ab61de0 100644 --- a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java @@ -44,12 +44,12 @@ public class MoGoAiCloudClientConfig { /** * 服务器分配给应用的令牌,用于网络请求校验 */ - String token = ""; + private String token = ""; /** * 服务器根据设备ID 分配的SN,用于网络请求校验 */ - String sn = ""; + private String sn = ""; /** * 循环检测延时时间 @@ -170,11 +170,10 @@ public class MoGoAiCloudClientConfig { * @return Token信息 */ public String getToken() { - - if (TextUtils.isEmpty(token)) { - Logger.e(TAG, "Token 获取失败……"); + if (TextUtils.isEmpty(SpStorage.getToken())) { + Logger.e(TAG, "本地 Token 获取失败……"); } - return token; + return SpStorage.getToken(); } /** @@ -183,10 +182,32 @@ public class MoGoAiCloudClientConfig { * @return SN信息 */ public String getSn() { - if (TextUtils.isEmpty(sn)) { - Logger.e(TAG, "SN 获取失败……"); + if (TextUtils.isEmpty(SpStorage.getSn())) { + Logger.e(TAG, "本地 SN 获取失败……"); } - return sn; + return SpStorage.getSn(); + } + + /** + * 设置Token + * + * @param token 平台分配的token信息 + */ + public void setToken(String token) { + this.token = token; + // 存储本地 + SpStorage.setToken(token); + } + + /** + * 设置SN + * + * @param sn 平台分配的sn信息 + */ + public void setSn(String sn) { + this.sn = sn; + // 存储本地 + SpStorage.setSn(sn); } /** @@ -274,6 +295,7 @@ public class MoGoAiCloudClientConfig { ", token='" + token + '\'' + ", sn='" + sn + '\'' + ", mLoopCheckDelay=" + mLoopCheckDelay + + ", mIsUseExternalLocation=" + mIsUseExternalLocation + ", mIHttpDnsCurrentLocation=" + mIHttpDnsCurrentLocation + '}'; }