Flutter中如何使用flutter_secure_storage插件

在Flutter项目中集成flutter_secure_storage插件时,遇到无法正确存储和读取数据的问题。具体表现为:在Android平台上调用write方法后,通过read方法获取不到存储的值,但在iOS上正常。已确认添加了AndroidManifest.xml的配置,并尝试过不同的key名称仍无效。请问可能是什么原因导致的?是否需要额外配置或权限?如何排查这类平台差异性问题?

2 回复

在Flutter中使用flutter_secure_storage插件:

  1. 添加依赖到pubspec.yaml
dependencies:
  flutter_secure_storage: ^9.0.0
  1. 导入包:
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
  1. 使用示例:
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
}

通过以上步骤,即可安全地管理敏感数据。

回到顶部