Browse Source

fix 处理接口返回的未授权

RobinTan1024 4 years ago
parent
commit
ff5d2500cf

+ 16 - 1
app/src/main/java/com/doverfuelingsolutions/issp/api/basic/AuthInterceptor.kt

@@ -1,6 +1,13 @@
 package com.doverfuelingsolutions.issp.api.basic
 
+import androidx.core.os.bundleOf
+import com.doverfuelingsolutions.issp.DFSApplication
+import com.doverfuelingsolutions.issp.R
 import com.doverfuelingsolutions.issp.data.GlobalData
+import com.doverfuelingsolutions.issp.utils.DFSToastUtil
+import com.doverfuelingsolutions.issp.utils.StringUtil
+import com.doverfuelingsolutions.issp.utils.log.DFSLog
+import com.doverfuelingsolutions.issp.view.LoginActivity
 import okhttp3.Interceptor
 import okhttp3.Response
 
@@ -13,6 +20,14 @@ class AuthInterceptor : Interceptor {
             .addHeader("DeviceSN", GlobalData.serialNumber.get())
         if (GlobalData.accessToken.get().isNotBlank()) request.header("Authorization", "Bearer ${GlobalData.accessToken.get()}")
         if (GlobalData.businessId.get().isNotBlank()) request.header("CurrentBuId", GlobalData.businessId.get())
-        return chain.proceed(request.build())
+        val response = chain.proceed(request.build())
+        if (response.code() == 401 && response.message().equals("Unauthorized", true)) {
+            DFSToastUtil.fail(R.string.login_expire_msg)
+            LoginActivity.start(DFSApplication.instance.applicationContext, bundleOf(
+                Pair(LoginActivity.autoLogin, false),
+                Pair(LoginActivity.loginMessage, StringUtil.get(R.string.login_expire_msg)),
+            ))
+        }
+        return response
     }
 }

+ 6 - 5
app/src/main/res/values/strings.xml

@@ -24,6 +24,12 @@
     <string name="login">登录</string>
     <string name="fail_refresh_login">刷新 LoginToken 失败,请重新登录</string>
     <string name="re_login">重新登录</string>
+    <string name="in_login">登录中&#8230;</string>
+    <string name="login_fail_reason">登录失败:%1$s</string>
+    <string name="login_fail">登录失败</string>
+    <string name="login_tip">登录提示</string>
+    <string name="login_tip_detail">请先登录</string>
+    <string name="login_expire_msg">账号验证信息已过期,请重新登录</string>
 
     <!-- preference -->
     <string name="preference">应用设置</string>
@@ -40,12 +46,7 @@
 
 
     <string name="fail_operate">操作失败</string>
-    <string name="in_login">登录中&#8230;</string>
     <string name="in_loading">加载中&#8230;</string>
-    <string name="login_fail_reason">登录失败:%1$s</string>
-    <string name="login_fail">登录失败</string>
-    <string name="login_tip">登录提示</string>
-    <string name="login_tip_detail">请先登录</string>
     <string name="input_not_right">填写数据不正确</string>
     <string name="return_data_error">请求返回数据不正确</string>
     <string name="account_name_password_error">账号名或密码错误</string>