提交 43d99686 authored 作者: 史晓晨's avatar 史晓晨

feat:兼容阿里云网关鉴权,重新登录逻辑

上级 5418715c
...@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android' ...@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 33 compileSdkVersion 34
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility JavaVersion.VERSION_11
......
...@@ -6,7 +6,7 @@ buildscript { ...@@ -6,7 +6,7 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:7.2.0' classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} }
} }
......
...@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME ...@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
\ No newline at end of file
...@@ -10,7 +10,7 @@ class DioUtils extends BaseDio { ...@@ -10,7 +10,7 @@ class DioUtils extends BaseDio {
@override @override
String setBaseUrl() { String setBaseUrl() {
return "https://api.clxkj.cn:8088"; return "https://gateway.testclx.cn";
} }
@override @override
......
...@@ -12,10 +12,9 @@ class DioWidgetTest extends StatefulWidget { ...@@ -12,10 +12,9 @@ class DioWidgetTest extends StatefulWidget {
class _DioWidgetTestState extends State<DioWidgetTest> { class _DioWidgetTestState extends State<DioWidgetTest> {
static const String getSystemVersionByNumber = static const String getSystemVersionByNumber =
'/user-service/system/version/getSystemVersionByNumber'; '/clx-performance/lco/app/driver/orderChild/getGoingLatestOrderChild';
String _result = ''; String _result = '';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MyScaffold( return MyScaffold(
...@@ -23,9 +22,9 @@ class _DioWidgetTestState extends State<DioWidgetTest> { ...@@ -23,9 +22,9 @@ class _DioWidgetTestState extends State<DioWidgetTest> {
children: [ children: [
Text(_result), Text(_result),
TextButton( TextButton(
onPressed: () async { onPressed: () async {
debugPrint("=====11111"); debugPrint("=====11111");
DioUtils.instance.request( DioUtils.instance.request(
requestUrl: getSystemVersionByNumber, requestUrl: getSystemVersionByNumber,
method: Method.get, method: Method.get,
queryParameters: { queryParameters: {
...@@ -48,6 +47,19 @@ class _DioWidgetTestState extends State<DioWidgetTest> { ...@@ -48,6 +47,19 @@ class _DioWidgetTestState extends State<DioWidgetTest> {
debugPrint("=====22222"); debugPrint("=====22222");
}, },
child: const Text('dio请求')), child: const Text('dio请求')),
TextButton(
onPressed: () async {
debugPrint("=====11111");
var result = await DioUtils.instance.requestSync(
requestUrl: getSystemVersionByNumber,
method: Method.get,
queryParameters: {
'versionNumber': 20,
'productNo': 1,
});
debugPrint("=====22222 result = $result");
},
child: const Text('dio请求 sync')),
], ],
); );
} }
......
...@@ -33,6 +33,10 @@ dependencies: ...@@ -33,6 +33,10 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
# rive: ^0.10.4 # rive: ^0.10.4
#重新依赖库版本 库版本冲突在这里修改,后续更新基础库时,需要注意
dependency_overrides:
flutter_spinkit: 5.2.1
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
......
...@@ -108,6 +108,7 @@ abstract class BaseDio { ...@@ -108,6 +108,7 @@ abstract class BaseDio {
if (e.response != null) { if (e.response != null) {
logger.e( logger.e(
"请求错误:${e.response!.statusCode} ${e.response!.requestOptions.path}"); "请求错误:${e.response!.statusCode} ${e.response!.requestOptions.path}");
if (await _httpExceptionReLogin(e.response)) return;
} else { } else {
// Something happened in setting up or sending the request that triggered an Error // Something happened in setting up or sending the request that triggered an Error
logger.e("请求错误:${e.error}"); logger.e("请求错误:${e.error}");
...@@ -152,6 +153,9 @@ abstract class BaseDio { ...@@ -152,6 +153,9 @@ abstract class BaseDio {
if (e.response != null) { if (e.response != null) {
logger.e( logger.e(
"请求错误:${e.response!.statusCode} ${e.response!.requestOptions.path}"); "请求错误:${e.response!.statusCode} ${e.response!.requestOptions.path}");
if (await _httpExceptionReLogin(e.response)) {
return {"code": 401, "message": "登录过期,请重新登录"};
}
} else { } else {
// Something happened in setting up or sending the request that triggered an Error // Something happened in setting up or sending the request that triggered an Error
logger.e("请求错误:${e.error}"); logger.e("请求错误:${e.error}");
...@@ -188,6 +192,22 @@ abstract class BaseDio { ...@@ -188,6 +192,22 @@ abstract class BaseDio {
await errorCallback?.call(400, "数据解析错误"); await errorCallback?.call(400, "数据解析错误");
} }
} }
/// 网关拦截重新登录
/// http状态码为401 & 返回体code为-100时,需重新登录 {"code":-100,"msg":"权限变更或登录过期,请重新登录"}
Future<bool> _httpExceptionReLogin(Response? response) async {
var httpCode = response?.statusCode;
var httpData = response?.data;
if (httpData != null && httpData != "") {
var httpResult = await jsonTransformer.parseJson(httpData);
if (httpCode == 401 && httpResult["code"]?.toString() == "-100") {
logger.e("登录过期:${httpResult['msg']}");
onLoginExpire();
return true;
}
}
return false;
}
} }
Options _checkOptions(String method, Options? options) { Options _checkOptions(String method, Options? options) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论