zeu*_*cxb 14
正如我在已删除的帖子中提到的,我一直在使用 hive 来存储我的令牌和其他本地数据。使用hive可以创建一个加密的盒子
import 'dart:typed_data';
import 'package:hive/hive.dart';
void main() async {
var keyBox = await Hive.openBox('encryptionKeyBox');
if (!keyBox.containsKey('key')) {
var key = Hive.generateSecureKey();
keyBox.put('key', key);
}
var key = keyBox.get('key') as Uint8List;
print('Encryption key: $key');
var encryptedBox = await Hive.openBox('vaultBox', encryptionKey: key);
encryptedBox.put('secret', 'Hive is cool');
print(encryptedBox.get('secret'));
}
Run Code Online (Sandbox Code Playgroud)
正如评论中提到的:
上面的示例将加密密钥存储在一个未加密的盒子中。你永远不应该这样做。
重要的:
因此,如果您不需要任何
hive特定功能,flutter_secure_storage应该是您更好的选择。
Nic*_*muz 12
您可能不想在共享首选项中存储敏感数据。相反,您可能想要研究这样的插件:https : //pub.dartlang.org/packages/flutter_secure_storage
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
// Create storage
final storage = new FlutterSecureStorage();
// Write value
await storage.write(key: 'jwt', value: token);
Run Code Online (Sandbox Code Playgroud)
我使用https://pub.dev/packages/flutter_secure_storage将 JWT 令牌保存在本地存储中。
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
final storage = const FlutterSecureStorage();
// to save token in local storage
await storage.write(key: 'token', value: data.token);
// to get token from local storage
var value = await storage.read(key: 'token');
Run Code Online (Sandbox Code Playgroud)
其他提示:
flutter clean和flutter pub get)sudo gem install cocoapodssudo gem install cocoapods| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |