feat(app): pnpm 一键启动 + Flutter Web 编译修复
1. 新增 pnpm start:dev / pnpm start:stop 命令 - scripts/dev.mjs: 跨平台启动脚本(后端+管理端+学生端) - scripts/stop.mjs: 端口清理停止脚本 - 根 package.json 定义 pnpm 脚本 2. 修复 Flutter Web 编译(Isar 3.x + flutter_secure_storage 不兼容) - isar_database: 条件导出,Web 用空 stub - isar_journal_repository: 条件导出,Web 用空 stub - sync_engine: 条件导出,Web 用内存队列(无 Isar 持久化) - 移除 flutter_secure_storage(v9 web 插件用 dart:html) - 新增 SecureTokenStore 接口 + shared_preferences 实现 - auth_repository 改用 SecureTokenStore 接口
This commit is contained in:
37
app/lib/data/local/secure_token_store_native.dart
Normal file
37
app/lib/data/local/secure_token_store_native.dart
Normal file
@@ -0,0 +1,37 @@
|
||||
// 安全令牌存储 — 原生平台实现(shared_preferences)
|
||||
//
|
||||
// 临时使用 shared_preferences 替代 flutter_secure_storage。
|
||||
// flutter_secure_storage v9 的 web 插件不兼容 Flutter 3.44,
|
||||
// 待其升级到 v10+ 后恢复加密存储。
|
||||
// TODO: 恢复 flutter_secure_storage 加密存储
|
||||
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'secure_token_store.dart';
|
||||
|
||||
/// 原生平台安全令牌存储(临时使用 shared_preferences)
|
||||
class NativeSecureTokenStore implements SecureTokenStore {
|
||||
SharedPreferences? _prefs;
|
||||
|
||||
Future<SharedPreferences> get _instance async {
|
||||
return _prefs ??= await SharedPreferences.getInstance();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String?> read(String key) async {
|
||||
final prefs = await _instance;
|
||||
return prefs.getString(key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> write(String key, String value) async {
|
||||
final prefs = await _instance;
|
||||
await prefs.setString(key, value);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
final prefs = await _instance;
|
||||
await prefs.remove(key);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user