Flutter中如何使用flutter_secure_storage插件
在Flutter项目中集成flutter_secure_storage插件时,遇到无法正确存储和读取数据的问题。具体表现为:在Android平台上调用write方法后,通过read方法获取不到存储的值,但在iOS上正常。已确认添加了AndroidManifest.xml的配置,并尝试过不同的key名称仍无效。请问可能是什么原因导致的?是否需要额外配置或权限?如何排查这类平台差异性问题?
2 回复
在Flutter中使用flutter_secure_storage插件:
- 添加依赖到
pubspec.yaml:
dependencies:
flutter_secure_storage: ^9.0.0
- 导入包:
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
- 使用示例:
final storage = FlutterSecureStorage();
// 写入
await storage.write(key: 'token', value: 'abc123');
// 读取
String? value = await storage.read(key: 'token');
// 删除
await storage.delete(key: 'token');
适用于存储敏感数据如token、密码等。
更多关于Flutter中如何使用flutter_secure_storage插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用flutter_secure_storage插件存储敏感数据(如令牌、密码)非常简单。以下是详细步骤:
1. 添加依赖
在 pubspec.yaml 文件中添加依赖:
dependencies:
flutter_secure_storage: ^9.0.0
运行 flutter pub get 安装。
2. 基本用法
导入插件并创建存储实例:
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
final storage = FlutterSecureStorage();
3. 常用操作
-
写入数据:
await storage.write(key: 'token', value: 'your_jwt_token'); -
读取数据:
String? token = await storage.read(key: 'token'); -
删除数据:
await storage.delete(key: 'token'); -
清空所有数据:
await storage.deleteAll();
4. 平台配置
- Android:最低API级别为18,无需额外配置。
- iOS:确保在
Info.plist中配置密钥链访问组(如果需要共享数据)。
5. 注意事项
- 数据通过平台原生机制加密(Android使用Keystore,iOS使用Keychain)。
- 避免存储过大数据,可能影响性能。
完整示例
Future<void> main() async {
await storage.write(key: 'user', value: 'Alice');
String? user = await storage.read(key: 'user');
print('User: $user'); // 输出:User: Alice
}
通过以上步骤,即可安全地管理敏感数据。

