Facebook身份验证&x2B;将用户注册到数据库

Facebook身份验证&x2B;将用户注册到数据库,facebook,backbone.js,laravel-4,facebook-authentication,Facebook,Backbone.js,Laravel 4,Facebook Authentication,我正在构建一个带有主干的Javascript应用程序,并使用Laravel4作为后端(使用Laravel的身份验证机制)为用户身份验证实现了一个restful接口。 一切都很顺利 我创建了一个基本的演示,允许用户使用他们的Facebook帐户登录。 为了做到这一点,我使用了FacebookSDK for JS(web) 我不明白的是如何实现以下内容: 用户第一次使用其Facebook帐户登录,用户数据应自动存储在我的数据库中(即电子邮件、名字、姓氏、性别、生日)。 假设用户决定删除他的Faceb

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

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

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

但显然不可能上传他们的Facebook密码,让其通过Laravel的身份验证进行处理。

那么,处理这个问题最常见的解决方案是什么

在您自己的登录系统中提供Facebook登录和重复使用Facebook帐户详细信息的最常见解决方案是,使用类似Sentry的Laravel库,它支持OAuth2()

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

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

哨兵的例子已经出现了,所以:

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

因为当用户第一次登录FB时,即使他们决定不再使用FB,您也已经在您的DB中存储了用户的电子邮件和个人资料,您可以实现类似“忘记密码”的功能,您可以向他们的电子邮件发送自动生成密码,让他们登录到您的系统,然后稍后进行更改。感谢您的提示,这可能会很有用。也许我应该自己管理逻辑,并在用户表中创建一个表示状态的标志。谢谢您的回答。关于你的评论:我故意删除了前面的问题,因为(长)问题本身存在误导性的逻辑错误。此外,我的问题与切换完整配置文件有关,而您的回答包含有关角色管理系统的信息,该系统本身并不相关,因此可以在rbac相关问题和Google中广泛找到。无意冒犯,但删除这个问题似乎是最好的解决方案,我很抱歉占用您的时间。