移动应用中的Facebook登录

5
我计划在我的iPhone/Android应用程序中整合“登录Facebook”功能,并且我有一个用于维护用户详细信息的PHP后端。 我不确定这个功能应该如何实现,是否有标准的实现方式?是这样的吗- 在用户通过Facebook成功验证后,我应该获取他/她的详细信息并要求他输入密码以将其注册到我的后端,还是还需要做其他事情,而我不知道。请建议实施此功能的标准方式。谢谢。
2个回答

6

我们遇到了相同的情况..

所以我做的是:

  1. 验证用户身份。
  2. 始终获取用户信息(如姓名、电子邮件、出生日期等)。
  3. 现在将fb id和电子邮件发送到您的服务器。
  4. 服务器将查找数据库以检查fb id和姓名的存在。
  5. 如果存在,表示它是注册用户。(因此您将允许用户登录您的应用程序)
  6. 如果不存在,则表示它是新用户。(因此您将带用户前往加入/注册屏幕,并使用第2步获得的数据填写表单)只需将密码字段留空即可让用户选择自己的密码。
  7. 现在将所有详细信息与fb id一起发送到您的服务器,并在成功响应后立即让用户登录,因为您不需要要求用户打开电子邮件以获取激活链接。

可以使用Twitter进行类似的身份验证吗?如果是,应该使用什么唯一标识符? - Ajith M A
@AjithMemana 的 Twitter 名称始终是唯一的字符串,您可以使用它来代替唯一标识符。 - Adil Soomro
但是Twitter ID的问题在于它可以无限次更改,导致服务器将其识别为新用户。我发现有一个名为user_id的字段,它是一个可变长度(6-9位数字)的数字。我能否将其用作唯一标识符?我没有在任何地方找到有人提到过这个。 - Ajith M A
2
第四步对我来说似乎存在安全风险。FB ID和电子邮件是公开可用的信息。任何人都可以伪造并构建一个冒充请求。 - asami
@AdilSoomro - 为什么需要存储密码?因为用户每次都可以使用Facebook按钮登录,而无需输入密码吗?! - James111
显示剩余4条评论

4

使用Facebook登录按钮

  1. 将新用户重定向到Facebook以获取所需的权限。

  2. 从Facebook中预填您的注册表格,并为您的站点设置密码。

  3. 将用户详细信息保存在您的后端。

当已连接的用户再次登录时

  1. 检查活动的Facebook会话。

  2. 获取当前Facebook用户的UserID是否等于保存在您的数据库中的UserID,如果是,则登录他。

  3. 否则,显示注册表格。


1
你的第二点非常棒,我的意思是如果我没有在这里问,我可能会完全错过它。 - Mahendra Liya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接