如何使用安全存储将用户名和密码存储在 flutter 中

how about to use secure storage to store the user username and password in flutter

我正在使用 flutter 编写应用程序,现在我想使用 secure storage 来存储 username/passowrd 像这样:

SecureStorageUtil.putString("password", password);

这是一个好习惯吗?或者从不将用户密码存储在客户端应用程序中?我已经从 Google 搜索过,但没有人谈论它。这是 SecureStorageUtil:

import 'package:flutter_secure_storage/flutter_secure_storage.dart';

class SecureStorageUtil{

  static FlutterSecureStorage _preferences = FlutterSecureStorage();

  static Future<String?> getString (String key, {String defValue = ''}) {
    return _preferences.read(key:key) ;
  }

  static Future<void> putString(String key, String value) {
    return _preferences.write(key:key, value:value);
  }

  static Future<void> delString(String key) {
    return _preferences.delete(key:key);
  }
}

正如文档所说

  • Keychain is used for iOS
  • AES encryption is used for Android. AES secret key is encrypted with RSA and RSA key is stored in KeyStore

Keystore由系统管理,安全。如果保存密码很重要,您可以使用它。 但是,始终建议不要在 client-side 上存储密码,而是保存一些 Auth 密钥(如 JWT 令牌等)来对用户进行身份验证。

有一个名为 SharePreferences 的包可以让您在 ios 和 android 两个平台上存储任何东西,它没有任何问题。我推荐那个包。我希望这会奏效。第二件事是存储密码。如果用户在应用程序中有一个选项,例如 Remember Me,那么存储用户名和密码很有用。