2013-02-01 46 views
0

我有一个关于我的web应用程序上的Facebook登录的问题。以脸书登录的可能性

用户可以登录Facebook或手动注册。 手动注册后,用户被添加到数据库的'用户'。 当用户第一次使用Facebook登录时,会发生同样的情况(但是,没有向数据库添加密码)

我的问题:是否有可能让已经登录Facebook的用户使用'正常'登录表单,手动注册用户的表单?如何检查用户输入的密码是否与他们的Facebook密码相符?

或者这是完全不可能的?

顺便说一句,我使用笨

回答

1

要做到这一点,唯一可行的方法是在他们登录后向他们要求密码。这样,他们将能够使用Facebook或他们的电子邮件地址和他们刚刚指定的密码进行登录。

没有办法确保密码与Facebook相同,我不建议这样做,即使这是可能的(不可能,并会让你陷入与Facebook的TOS麻烦)。这取决于你的用户选择他们想要的密码。

1

我认为最好的可能性是为用户创建密码的能力,因为他们帐户,因为你与Facebook不容交换密码(它使用的基地OAuth,不知道外部提供商的用户密码)。

1

是的,这实际上很简单,我已经做了不止一次。除此之外,我认为这是一个很好的做法,Facebook已经知道改变他们的API并在过去搞砸FB登录。

你可以用两种方法之一来完成。

第一个不需要用户交互,但不是最安全的做事方式,也不是任何需要真正安全的站点的好主意。首次输入用户数据时,只需生成随机密码,并通过FB电子邮件将其发送给用户。问题是,第一封电子邮件密码可能是危险的安全方面的明智之举,其次很多人会使用垃圾邮件账户,以免他们看到电子邮件。

其次是通过用户控制面板上的用户交互。只需让他们更新他们的密码字段。对于通过FB登录的用户,您不能要求以前的密码,但是您可以使用从FB账户中获取的其他一些数据,甚至要求他们的FB电子邮件地址有点安全,因为FB现在已经从公众那里获取了这些信息。

不,没有办法获得他们的FB密码,也没有Facebook永远不会改变他们的API来允许它。