iOS Facebook登录,处理不同的访问令牌并确定用户身份

时间:2013-08-24 13:08:01

标签: php ios facebook facebook-graph-api facebook-ios-sdk

我在社交网络iOS应用程序中有关于Facebook集成和身份验证的几个问题。

首先,我的应用程序的用户需要先创建帐户并登录才能获得任何内容。

我有一个单独的后端系统,因此支持我的应用程序内的常规帐户注册。当用户登录到某个帐户时,他或她会获得一个访问令牌,用于将来的后端请求,例如图片上传。

其次,用户可以选择使用Facebook登录,从而从已成功打开的FBSession获取访问令牌

这导致了我的第一个问题:如何使用从Facebook获取的访问令牌来使用我的后端系统对我的用户进行身份验证?我是否应该将获得的令牌发送到我的后端并让系统使用那个令牌给这个特定用户,直到另行通知为止,还是有另一种方法可以解决这个问题?

-

现在我要说我在第一个问题中解决了问题......
我的第二个问题:想象一下,用户创建了一个帐户并以正常方式登录(即没有Facebook)下一次该用户想要使用该应用程序,他或她选择登录Facebook。
现在,在我的后端系统中,我怎么知道这两个用户是相同的,连接它们,从而能够为这两种情况加载相同的内容? 甚至可能拥有支持双重登录的混合帐户吗?定期注册只需要电子邮件,用户名和密码,所以我想不出一种方法来确定facebook-loggedin-user与普通登录​​用户是同一个用户。

我希望上述内容有道理。

2 个答案:

答案 0 :(得分:2)

联合两个成员资格的唯一方法是使用公共链接作为用户名或标识符,例如电子邮件。我相信fb,google,yahoo和其他人会转发用户的电子邮件帐户信息。您的数据库应该允许存储用户的电子邮件地址。当用户使用Facebook登录然后第二天使用gmail时,你会做什么,当它变得棘手,你必须实现某些机制来链接这些帐户。

答案 1 :(得分:1)

  

定期注册只需要电子邮件,用户名和密码

在这种情况下,您可以要求用户向您的应用授予email权限。因此,通过匹配两封电子邮件(因为,定期注册需要电子邮件),您可以确定此facebook-loggedin用户与普通登录​​用户是同一用户。

但是,在某些情况下(非常少)您可能无法获取电子邮件(Register with Facebook sometimes doesn't provide email);但是,注册过程将无法完成 - 因此我认为这不是问题。