跨页面存储会话数据最佳实践

Posted

技术标签:

【中文标题】跨页面存储会话数据最佳实践【英文标题】:Storing session data in flutter across pages best practice 【发布时间】:2021-01-09 13:44:29 【问题描述】:

我有一个 Flutter 应用程序,它包含一个用户名和一个令牌以与 Web 服务通信。 如何使用最佳实践有效地管理用户名和令牌?目前我正在将它们写入数据库并在每次我想做请求时选择它们。

我尝试将 bloc 提供程序 flutter bloc 与 BlocProvider 一起使用。我有 LoggedIn 和 LoggedOut 状态以及 Login 和 Logout 事件。

另外,我看过 secure storage,但我无法获得所有页面的可用数据。

另外,我没有使用 firebase API。

如果我应该提供一些代码 sn-ps,请告诉我。

【问题讨论】:

在我的应用程序中,我只是共享首选项和一个单例类来在登录时存储用户值 我认为 firebase 身份验证会更简单、更安全。这是免费的。您可以将用户的 id 令牌发送到您的 Web 服务器以验证是哪个用户发送的。 medium.com/firebase-tips-tricks/… 和 firebase.google.com/docs/auth/admin/verify-id-tokens 。您可以通过以下方式获取 id 令牌:***.com/questions/56201378/… 我检查了 firebase,但我不认为它总是 goto。首先,我的后端已经完成(由一个相对丰富的 REST API 组成)。其次,如果您的流量不仅仅是我测试系统的流量,那么 firebase 根本不是免费的。如果我错了,请纠正我,但在 firebase 中从头开始看起来不是最好的主意。 【参考方案1】:

我现在使用SharedPreferences。 API 非常简单,我编写了一个包装器来摆脱 (Strings) 键。此外,包装器保存当前会话的值。这样做的好处是,我可以直接处理这些值,而不需要异步读取它们。

【讨论】:

以上是关于跨页面存储会话数据最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

在页面之间传递数据的最佳实践

Angularjs 数据存储最佳实践

iOS - 数据存储最佳实践

在数据库中存储图像参考的最佳实践

跨 DB2 和 Oracle 数据库连接信息最佳实践

如何将消息插入取决于会话值的视图。 ASP.NET MVC。最佳实践