【问题标题】:Storing authenticated user data with Realm or UserDefaults?使用 Realm 或 UserDefaults 存储经过身份验证的用户数据?
【发布时间】:2019-04-06 13:45:12
【问题描述】:

我的应用类似于 Twitter,人们可以在其中发布帖子,您可以关注其他人以在您的提要中查看他们的帖子。当用户登录到他们的帐户并且 API 发回用户数据时,我需要存储该经过身份验证的用户的数据。

我已经设置了一个 Realm User 类,但我使用这个类来存储来自其他用户帖子的用户数据。所以我的问题是,我应该如何存储经过身份验证的用户数据?我想到了两种选择,但似乎都错了:

  1. 创建一个AuthenticatedUser 领域类并将其存储在那里。我不认为领域支持继承其他领域类(在这种情况下,我已经存在 User 类),所以这似乎不是正确的解决方案。
  2. 将用户的数据存储在UserDefaults 中,但是如果我已经在使用领域,这似乎不太正确。

我应该在这里做什么?解决这个问题的最佳方法是什么?

【问题讨论】:

  • UserDefaults 数据不要太大比较好,你打算存储什么样的数据?
  • 为什么需要存储经过身份验证的用户数据?当用户进行身份验证时,他们是领域的已知用户,那么您还需要对这些数据做什么?用例是什么?
  • @Jay 用户名、显示名称、个人资料图片 URL 等信息。
  • 为什么不创建一个名为 Users 的领域来存储 UserInfo 领域对象数据,以及显示名称、利润图片等属性?有点不清楚要问什么以及实际问题是什么。您能否澄清问题并解释您遇到的问题?

标签: ios swift xcode realm


【解决方案1】:

IMO,您应该使用 Realm 来存储用户数据,但不能以纯格式存储。使用 Realm 支持的加密。它们支持对存储数据进行 AES-256 加密。请查看此网址:“https://realm.io/products/realm-database/”。子类需要通过存储每个类来单独处理,并且必须由我们维护关系。

用户默认设置是存储敏感信息的一大禁忌。它以二进制格式存储在 plist 中,没有加密,并存储在您的应用程序目录中。请在下面找到详细信息:“https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 2017-03-25
    • 2020-09-11
    • 2020-11-15
    • 2016-01-17
    • 1970-01-01
    • 2015-04-02
    • 2015-06-21
    相关资源
    最近更新 更多