【发布时间】:2015-12-17 19:05:17
【问题描述】:
这更像是一个设计问题。
我有一个应用程序,我开始迁移到离线模式。我正在使用带有 GRDB 包装器的 SQLite。每次用户进行身份验证时,我都会下载一组用户配置文件数据,即用户 ID、添加日期、访问级别、配置文件图像 url、设置等。然后我将此信息存储到与 MYSQL 在线版本的结构匹配的本地 SQLite 表中.
我还在钥匙串中存储了一个身份验证令牌和密码,并在身份验证后将它们用于与服务器的所有通信(无用户 ID)。
我的问题是,一旦用户注销,我是否应该删除 SQLite 中的现有表,从而清除所有以前的用户数据并开始为当前用户清理?
我担心如果用户 1 在朋友的手机上登录了应用程序,则可以使用前一个用户的信息的安全性。如果在注销时不清除信息,新用户是否可以使用这些数据?显然不是通过应用程序本身,而是通过其他形式查看 SQLite 信息。
所有敏感信息,即密码等都存储在钥匙串中。
我知道这可能是一个基于意见的问题,但这就是我要寻找的,只是关于你认为最有效的一些意见。
谢谢
【问题讨论】:
-
除了我在下面的回答之外,我还有其他问题要问:为什么要让用户首先注销?如此多的应用程序让用户登录,仅此而已。人们永远不会登录他们朋友 iPhone 的 Facebook 应用程序,不是吗?
-
我认为您在注销的大部分情况下是正确的,但是我想我只想涵盖所有可能的情况,其中一些信息(例如个人资料图片、姓名、电子邮件、帐户类型等)可以从应用程序只需注销。所有应用程序都允许注销,但是是的,我永远不会登录朋友手机上的特定应用程序。登录期间下载的数据量相当小,这就是为什么我想基本上从手机中删除所有用户特定表(用户、设置、活动等)并在登录时创建新表,但保留通用表(新闻等)。