2011-10-27 27 views
2

我正计划开发一个严重依赖Facebook集成的网站,因为这个原因,我将主要推动用户使用“facebook登录”选项。出于某种原因,我不想忽略那些不喜欢使用Facebook登录的用户,因此我将通过电子邮件和密码实施经典的用户注册。网站使用Facebook和/或电子邮件进行双重登录

现在我的问题是:

  • 什么来管理登录正确的方法是什么?我是否应该将fb用户数据存储在记录中,首先登录(作为注册)保存它们的fb_userid作为在我的应用程序中使用其数据的参考?我可以在首次访问时获得并存储他们的Facebook电子邮件吗?

  • 如果用户只通过电子邮件注册,有一天想用Facebook登录,会发生什么?这会创建一个新的用户记录还是应该将两个登录合并到一个唯一的用户记录中?

  • 我是否需要为fb用户设置cookie和会话?

我看到很多网站现在使用这个双重登录,但我从来没有想过他们如何管理它。我第一次只想使用Facebook登录,但很多人认为这是一个坏主意。你怎么看?

感谢您的帮助!

回答

3

我有同样的事情。我做什么:

我的用户表有:ID,facebook_uid,电子邮件,密码

  1. 如果有人fconnects - 我创建一个新用户对他来说,独特的AI ID,将Facebook的用户ID,电子邮件,并生成一个随机密码。我通过邮件向他发送密码。

  2. 如果有人注册 - Facebook的uid是0

  3. 有人试图注册和电子邮件已经与Facebook的ID存在 - 他在邮件中有密码,或者可以使用忘记密码等

  4. 有人试图fconnect和电子邮件已经存在 - 我用的是现有的帐户:

我的做法是,我可以向他发送确认链接验证电子邮件。 fconnect是我的确认。在这种情况下,我想给他账户(因为他拥有电子邮件)。我可以让他输入密码并重新生成并发送给他。

当然,您可以以不同的方式处理每种情况 - 基本方法 - 验证电子邮件=您拥有一个帐户。 fconnect =验证邮件

编辑:注意 一旦用户有fconnected - 我设置会话/ cookie中的登录参数。我不想在每个页面视图上向Facebook服务器发出请求

+0

这似乎是管理它的方式。感谢您的简洁明了;) – Andycap

+0

出于好奇,您是否只存储令牌或更多数据?不要介意这个愚蠢的问题,这是我的第一个PHP项目,不是一种形式;) – Andycap

+0

你可以存储令牌,真的取决于你做什么。在我的一个项目中,我不保存它。在另一个项目中,我会在后台(在使用系统守护进程的服务器上)获取用户数据(如朋友列表),所以它不会取决于用户的浏览等。 – galchen

相关问题