app-starlock/lib/network/request_interceptor.dart

38 lines
1.3 KiB
Dart
Raw Permalink Normal View History

import 'dart:async';
import 'dart:convert';
import 'package:get/get.dart';
import 'package:get/get_connect/http/src/request/request.dart';
import 'package:star_lock/login/login/entity/LoginData.dart';
import '../tools/platform_info_services.dart';
import '../tools/storage.dart';
2024-12-19 14:30:08 +08:00
import '../translations/current_locale_tool.dart';
//公共获取UA
String getUserAgent() {
//赋值变量方便调试
2024-08-27 11:08:44 +08:00
final String ua =
'StarLock/${PlatformInfoService.to?.info.version}/${PlatformInfoService.to?.info.buildNumber}/${GetPlatform.isAndroid ? 'Android' : 'iOS'}';
return ua;
}
FutureOr<Request> requestInterceptor(Request request) async {
request.headers['User-Agent'] = getUserAgent();
2024-12-19 14:30:08 +08:00
request.headers['Accept-Language'] = CurrentLocaleTool
.getCurrentLocaleString(); // StoreService.to.getLanguageCode()
// request.headers['Content-Type'] = 'application/json';
2023-07-29 09:25:21 +08:00
// request.headers['token'] = StoreService.to.userToken!;
String? xToken = '';
final data = await Storage.getString(saveUserLoginData);
if (data != null && data.isNotEmpty) {
xToken = LoginData.fromJson(jsonDecode(data)).accessToken;
}
request.headers['Authorization'] = "Bearer ${xToken ?? ''}";
final String? deviceID = await Storage.getString(appDeviceID);
if (deviceID != null && deviceID.isNotEmpty) {
request.headers['deviceID'] = deviceID;
}
return request;
}