如何在应用程序中实现“用户”功能?

时间:2014-02-03 18:15:40

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

这可能是一个重复。但是,其他答案并没有帮助我。所以,到此为止。

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

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

1 个答案:

答案 0 :(得分:1)

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

这就是我们通过各种项目实施的方式。从你提供的服务列表中我们只使用了twitter和facebook,所以我只能谈论这个。

设定:

  1. 我们有一个我们的iOS应用程序与之通信的Web服务,例如当iOS应用程序需要发出请求用户登录请求时,服务器会将用户详细信息尝试登录并返回应用程序然后执行的响应什么是必要的。
  2. 我们在服务器上存储了一个数据库,其中包含用于验证用户的用户表。
  3. 话虽如此,您需要了解大多数社交服务之间的共同点,或者至少知道这些社交服务使用哪些属性来唯一标识其用户。在这种情况下,他们都使用电子邮件来识别用户。

    您会发现,当您的应用与这些不同的API接口时,他们喜欢使用用于唯一登录会话的登录会话密钥。

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

    只需仔细检查一下,当用户使用该方法登录时,linkedIn确实具有类似会话密钥的功能。 Facebook和Twitter做。将至少4个主要数据属性(用户名,密码,电子邮件,会话)发送到服务器然后您可以采用以下方法:

    新用户

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

    <强>成员

    • 如果用户登录电子邮件将存在于服务器端,则其现有用户只需更新在登录时从应用程序发送的会话密钥(如果密码匹配)(在某些应用程序中使用这些会话密钥)通过正在使用的应用程序的生命周期,每个请求发送相同的会话密钥,并且如果在任何时候会话密钥在应用程序交互期间不匹配,则可以断定用户可能已经在其他设备上的其他地方登录。
    • 如果密码不匹配,则返回相应的消息。

    这就是真的。我们可以将所有Facebook和Twitter用户存储在一个表中。