Ker*_*n97 3 dart flutter flutter-dependencies
我正在使用这个包在 Flutter 移动应用程序中存储一些登录凭据。我使用的版本是v5.0.2。我不确定我是否以正确的方式存储或读取该值。有谁知道如何检查它,或者我错过了什么或做错了什么。
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
class SecureStorage {
final _storage = const FlutterSecureStorage();
Future<Map<String, String>> _readAll() async {
return await _storage.readAll(
iOptions: _getIOSOptions(), aOptions: _getAndroidOptions());
}
void deleteAll() async {
await _storage.deleteAll(
iOptions: _getIOSOptions(), aOptions: _getAndroidOptions());
_readAll();
}
Future<String?> readSecureData(String key) async {
return await _storage.read(key: key);
}
Future<void> deleteSecureData(String key) async {
return await _storage.delete(key: key);
}
void writeSecureData(String key, String value) async {
await _storage.write(
key: key,
value: value,
iOptions: _getIOSOptions(),
aOptions: _getAndroidOptions(),
);
}
IOSOptions _getIOSOptions() => const IOSOptions(
accessibility: IOSAccessibility.first_unlock,
);
AndroidOptions _getAndroidOptions() => const AndroidOptions(
encryptedSharedPreferences: true,
);
}
final secureStorage = SecureStorage();
Run Code Online (Sandbox Code Playgroud)
这就是我所说的价值,
@override
void initState() {
Future.delayed(Duration.zero, () async {
final username = await secureStorage.readSecureData('username') ?? '';
final password = await secureStorage.readSecureData('password') ?? '';
setState(() {
_icNoController.text = username;
_passwordController.text = password;
});
});
super.initState();
}
Run Code Online (Sandbox Code Playgroud)
这就是我存储值的方式,
await secureStorage.writeSecureData('username', username);
await secureStorage.writeSecureData('password', password);
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为读/写问题的原因可能是与使用aOptions或不一致iOptions。
对于前。您正在使用aOptions,readAll()和方法,但不将其与deleateAll(),一起使用。
因此,当您将数据写入安全存储时使用in时,您指定必须将此数据写入。
但是,当您在不再次提供 aOptions 的情况下读取数据时,您会尝试从默认安全存储中读取数据,该存储不是您存储数据的 EncryptedSharedPreferences。示例适用于 Android,我还没有在 iOS 上测试过这个库。write()read()delete()encryptedSharedPreferences: true,aOptionsEncryptedSharedPreferencesaOptions