Facebook认证+注册用户到数据库



我正在使用Backbone构建一个Javascript应用程序,并使用Laravel4作为后端(使用Laravel的身份验证机制)实现了一个restful接口用于用户身份验证。
所有的工作都很顺利。

我创建了一个基本的演示,允许用户使用他们的Facebook帐户登录。为了做到这一点,我使用了Facebook SDK for JS (web)。

我不明白的是如何实现以下内容:
用户第一次登录时使用他/她的Facebook帐户,用户数据应该自动存储在我的数据库中(即电子邮件,名,姓,性别,出生日期)。
假设用户决定删除他的Facebook帐户,他可能会认为他仍然能够使用我自己的应用程序的默认登录屏幕登录到我的web应用程序。

但显然不可能上传他们的Facebook密码让Laravel的身份验证处理。
那么处理这个问题最常见的解决方案是什么呢?

在自己的登录系统中提供Facebook登录和重用Facebook帐户详细信息的最常见解决方案是使用Laravel库,如Sentry,它支持OAuth2(http://oauth.net/2/)。

因为你正在强制执行::login($user, false);对于没有密码的用户,您可能希望生成一个密码字段,以使用常规的非facebook登录。在使用针对FB的OAuth2成功登录到您的网站后,您只需存储客户端秘密,将用户登录到您的系统,获取所需的FB信息并发送带有生成的PW的电子邮件,以便直接登录到您的应用程序。电子邮件:"感谢您通过Facebook注册本网站。你的PW是...."。

正如@har2vey所指出的,它的功能与"重新发送我的密码"功能相同,但通过OAuth登录后直接发送,而不是根据用户请求发送。

一个哨兵的例子已经在SO: https://stackoverflow.com/a/19511907/1163786

旁注:如果你只是删除你的问题,这对那些花时间回答的人是不公平的。我指的是switch-profiles-on- client-and-server。这个答案可能对其他人也有用。

最新更新