ios - 如何在应用程序中实现 'User' 功能?

标签 ios objective-c database content-management-system

这可能是重复的。但是,其他答案并没有帮助我。所以,开始吧。

我正在开发一个应用程序,我们需要向它添加“用户”。我们将为人们提供使用 Facebook、Twitter 和 LinkedIn 登录的选项。我以前使用过这些 API,但从未在全局范围内组合它们。

我如何维护和管理这些将使用不同服务登录的用户。我对如何将它们存储在数据库中感到困惑,我是否需要为每个不同的社交服务创建不同的表,或者是有一种方法可以实现将所有用户放在一个地方的表。

最佳答案

据我了解,您是在询问如何管理、存储和验证将通过不同社交服务登录您的应用程序的用户。

这就是我们通过合作的各种项目实现它的方式。从您提供的服务列表来看,我们只与 twitter 和 facebook 合作,所以我只能说说。

设置:

  1. 我们有一个网络服务,我们的 iOS 应用程序与之通信,例如当 iOS 应用程序需要发出用户登录请求调用时,服务器将获取尝试登录的用户详细信息并返回响应,然后应用程序将执行此操作什么是必要的。
  2. 我们在服务器上存储了一个数据库,其中包含用于验证用户的用户表。

话虽如此,您需要了解大多数社交服务之间的共同点,或者至少了解这些社交服务使用什么属性来唯一标识其用户。在这种情况下,他们都使用电子邮件来识别用户。

您会发现,当您的应用程序与这些不同的 API 交互时,他们喜欢使用用于唯一登录 session 的登录 session key 。

因此,在您的数据库中,您可以存储任何您想保存的用户详细信息,但要知道您至少需要存储用户名、密码(加密)、电子邮件(用于识别,唯一列)和 login_session_key。

只需仔细检查 linkedIn 确实有类似 session key 的东西,当用户使用该方法登录时它会创建它。 Facebook 和推特都可以。至少将所需的 4 个主要数据属性(用户名、密码、电子邮件、 session )发送到服务器然后您可以采用这种方法:

新用户

  • 如果新用户尝试登录,服务器首先检查提供的电子邮件是否存在于数据库中,如果不存在,则您会发回响应提醒用户该用户不存在;例如,您的应用会将他们带到注册屏幕。
  • 如果用户位于注册表页面,请保存您想要存储的所有详细信息,包括用户名、密码和电子邮件。

成员

  • 如果用户登录电子邮件将存在于服务器端,则它是一个现有用户,因此如果密码匹配,只需更新从应用程序发送的登录 session key ,(在某些应用程序中使用这些 session key 在正在使用的应用程序的生命周期中,每个请求都发送相同的 session key ,如果在应用程序交互期间 session key 在任何时候不匹配,则可以得出结论,用户可能已经在其他设备上的其他地方登录。<
  • 如果密码不匹配,则返回相应的消息。

其实就是这样。我们能够将所有 facebook 和 twitter 用户存储在一张表中。

关于ios - 如何在应用程序中实现 'User' 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21534600/

相关文章:

c# - 如何将数据插入到特定行 MySQL C#

ios - 呈现新 View Controller 时销毁以前的 View Controller

ios - 没有 IB 的 Xcode UIViewController 到 customUIViewController

ios - 带有放大镜且没有键盘的 UITextView

ios - 在 iOS 上设置独立于设备的 RGB

ios - 如何为 UITableViewCell 找到 ViewController?

iphone - 如何手动设置连接超时?

php - 对于此类数据,最佳的数据库设计是什么

sql - 我可以用来自两个不同表的外键为两个不同的值设置一列吗?

ios - 在 xcode 中导出 ipa