feat(core): 请求头统一上报设备系统与机型
- 新增 DeviceProfileReader,首次读取后缓存,插件不可用时安全降级 - 拦截器为所有请求补 X-Client-Platform / Os / Model,匿名请求同样携带
This commit is contained in:
1 parent
929b7f72f8
commit
d6df5fbe5f
6 files changed
+148
-21
No files matched your search
@@ -14,6 +14,7 @@ import 'core/data/remote/catalog_api.dart';
|
||||
import 'core/data/remote/category_api.dart';
|
||||
import 'core/data/remote/comment_api.dart';
|
||||
import 'core/data/remote/commerce_api.dart';
|
||||
import 'core/data/remote/device_profile.dart';
|
||||
import 'core/data/remote/download_api.dart';
|
||||
import 'core/data/remote/interaction_api.dart';
|
||||
import 'core/data/remote/library_api.dart';
|
||||
@@ -116,6 +117,9 @@ class LumaDramaApp extends StatefulWidget {
|
||||
class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
late final AuthSessionStore _sessionStore = AuthSessionStore();
|
||||
|
||||
/// 设备画像只读一次:供拦截器在每次请求头里带上系统与机型。
|
||||
late final DeviceProfileReader _deviceProfile = DeviceProfileReader();
|
||||
|
||||
/// 全 App 共用一个 ApiClient:这样目录、账号、后续的互动/进度请求
|
||||
/// 都自动带 `Authorization` 与 `X-Device-Id`,401 的刷新重试也只有一处实现。
|
||||
late final ApiClient _apiClient = ApiClient(
|
||||
@@ -123,6 +127,7 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
tokenRefresher: () => _auth.refresh(),
|
||||
onUnauthorized: () => _auth.clear(),
|
||||
deviceIdReader: _sessionStore.deviceId,
|
||||
deviceProfileReader: _deviceProfile.read,
|
||||
);
|
||||
|
||||
late final AuthController _auth = AuthController(
|
||||
|
||||
Reference in new issue
Block a user