Flutter - 存储经过身份验证的用户详细信息

mor*_*d95 6 authentication dart flutter

我是 Flutter 的新手,我正在编写一个需要用户登录的应用程序。我已经有一个为我提供 JWT 的 API。然后我使用安全存储库存储它。

一旦用户使用令牌获得 200 OK,我想向服务器发送另一个请求以检索用户的详细信息并将其存储在一种单例类中,这样我就可以在应用程序中使用它,直到他注销。现在有很多流行语向我抛出,提供商和 BLoC。

我想知道在应用程序中存储当前登录的用户详细信息的最佳做法是什么?以前我已经知道将数据存储在单例类中。但现在我不确定我应该写一个单例类还是一个提供者?(我对 Providers 和 BLoCs 如何工作的知识仍然生疏)。

zav*_*ora 3

从简单开始

存储数据的一个简单起点(我假设是键/值对的形式)将使用共享首选项。

什么是共享偏好设置

共享首选项的主要用途是保存用户首选项、设置,也许还有数据(如果不是太大),以便下次启动应用程序时,可以检索和使用这些信息。

如何使用

设置共享首选项的实例变量并使用键标识符存储该值。任何时候您想在应用程序启动时检索该值,只需使用该密钥即可获取它。请参阅下面的设置和获取存储的用户名的示例。

Future<bool> setUserName(String value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs.setString("username",value);
}

Future<String> getUserName(String value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs.getString("username");
}
Run Code Online (Sandbox Code Playgroud)

安装 要安装共享首选项,请将其添加到包的 pubspec.yaml 文件中:

dependencies:
  shared_preferences: ^0.5.7+3
Run Code Online (Sandbox Code Playgroud)

更多信息请参见包装页面