ToB企服应用市场:ToB评测及商务社交产业平台

标题: 在 Flutter 中利用 flutter_secure_storage 进行安全数据存储 [打印本页]

作者: 来自云龙湖轮廓分明的月亮    时间: 2024-12-15 07:40
标题: 在 Flutter 中利用 flutter_secure_storage 进行安全数据存储
在移动应用开发中,安全地存储敏感信息(如访问令牌、用户凭证等)是至关重要的。Flutter 提供了一个名为 flutter_secure_storage 的插件,用于在 Android 和 iOS 装备上安全地存储数据。在本文中,我们将先容 flutter_secure_storage 的功能,并展示怎样在 Flutter 应用中利用它。
一、什么是 flutter_secure_storage?

flutter_secure_storage 是一个 Flutter 插件,它为 iOS 和 Android 提供了安全存储选项。该插件利用了各个平台的本地加密存储机制:

该插件支持的功能包括:

二、安装 flutter_secure_storage

要在 Flutter 项目中利用 flutter_secure_storage,首先需要将其添加到项目标 pubspec.yaml 文件中:
  1. dependencies:
  2.   flutter:
  3.     sdk: flutter
  4.   flutter_secure_storage: ^最新版本
复制代码
然后在终端中运行以下命令以安装依靠:
  1. flutter pub get
复制代码
三、利用 flutter_secure_storage

1. 导入包

在 Dart 文件中导入 flutter_secure_storage:
  1. import 'package:flutter_secure_storage/flutter_secure_storage.dart';
复制代码
2. 创建 FlutterSecureStorage 实例

  1. final storage = FlutterSecureStorage();
复制代码
3. 存储数据

利用 write 方法存储数据:
  1. await storage.write(key: 'username', value: 'john_doe');
复制代码
4. 读取数据

利用 read 方法读取数据:
  1. String? username = await storage.read(key: 'username');
  2. print('Username: $username');
复制代码
5. 删除数据

利用 delete 方法删除特定键的数据:
  1. await storage.delete(key: 'username');
复制代码
6. 清空存储

利用 deleteAll 方法清空所有存储的数据:
  1. await storage.deleteAll();
复制代码
7. 示例应用

以下是一个简单的 Flutter 应用示例,展示怎样利用 flutter_secure_storage 存储、读取和删除数据:
  1. import 'package:flutter/material.dart';import 'package:flutter_secure_storage/flutter_secure_storage.dart';
  2. void main() => runApp(MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Secure Storage Demo',      home: SecureStorageDemo(),    );  }}class SecureStorageDemo extends StatefulWidget {  @override  _SecureStorageDemoState createState() => _SecureStorageDemoState();}class _SecureStorageDemoState extends State<SecureStorageDemo> {  final FlutterSecureStorage storage = FlutterSecureStorage();  String _storedValue = '';  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('Secure Storage Demo'),      ),      body: Padding(        padding: const EdgeInsets.all(16.0),        child: Column(          mainAxisAlignment: MainAxisAlignment.center,          children: [            Text(              'Stored Value: $_storedValue',              style: TextStyle(fontSize: 20),            ),            SizedBox(height: 20),            ElevatedButton(              onPressed: () async {                await storage.write(key: 'username', value: 'john_doe');
  3.                 setState(() {                  _storedValue = 'john_doe';                });              },              child: Text('Store Value'),            ),            ElevatedButton(              onPressed: () async {                String? value = await storage.read(key: 'username');                setState(() {                  _storedValue = value ?? 'No value found';                });              },              child: Text('Read Value'),            ),            ElevatedButton(              onPressed: () async {                await storage.delete(key: 'username');
  4.                 setState(() {                  _storedValue = 'Deleted';                });              },              child: Text('Delete Value'),            ),            ElevatedButton(              onPressed: () async {                await storage.deleteAll();
  5.                 setState(() {                  _storedValue = 'All data deleted';                });              },              child: Text('Delete All'),            ),          ],        ),      ),    );  }}
复制代码
8. iOS 设置

在 iOS 上利用 flutter_secure_storage,需要进行一些额外的设置。在 iOS 项目标 ios/Runner/Info.plist 文件中添加以下设置,以启用 Keychain:
  1. <key>keychain-access-groups</key>
  2. <array>
  3.   <string>$(AppIdentifierPrefix)com.example.flutterSecureStorageExample</string>
  4. </array>
复制代码
9. Android 设置

在 Android 上,默认情况下 flutter_secure_storage 不需要额外设置。但是,假如您需要自界说 Android Keystore 的举动,可以在 android/app/src/main/kotlin/ 目录下的 MainActivity 中设置 FlutterSecureStoragePlugin。
四、最佳实践


五、结论

flutter_secure_storage 是一个强盛的插件,可以帮助开发者在 Flutter 应用中安全地存储敏感信息。通过利用平台本地的安全机制,它提供了一种简单且有用的方式来掩护用户数据。希望本文能帮助您更好地理解和利用 flutter_secure_storage。
假如您对这个插件或其他安全存储办理方案有任何疑问或建议,请在批评区留言!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4