// token_store.dart — JWT 令牌安全持久化(flutter_secure_storage 封装) import 'package:flutter_secure_storage/flutter_secure_storage.dart'; class TokenStore { const TokenStore({FlutterSecureStorage? storage}) : _storage = storage ?? const FlutterSecureStorage( // macOS 用文件式 keychain,避免未签名 app 缺 keychain-access-groups // entitlement 时 write 报 -34018。 mOptions: MacOsOptions(useDataProtectionKeyChain: false), ); final FlutterSecureStorage _storage; static const _kAccess = 'pangolin_access_token'; static const _kRefresh = 'pangolin_refresh_token'; Future saveTokens({ required String access, required String refresh, }) async { await _storage.write(key: _kAccess, value: access); await _storage.write(key: _kRefresh, value: refresh); } Future loadAccessToken() => _storage.read(key: _kAccess); Future loadRefreshToken() => _storage.read(key: _kRefresh); Future clear() async { await _storage.delete(key: _kAccess); await _storage.delete(key: _kRefresh); } }