我正在使用Backbone构建一个Javascript应用程序,并使用Laravel4作为后端为用户身份验证实现了一个休息接口(使用Laravel的身份验证机制)。 一切都很顺利。
我创建了一个基本演示,允许用户使用他们的Facebook帐户登录 为了做到这一点,我使用Facebook SDK for JS(web)。
我不明白的是我如何实施以下内容:
用户第一次使用他/她的Facebook帐户登录,用户数据应自动存储在我的数据库中(即电子邮件,名字,姓氏,性别,出生日期)。
想象一下,用户决定删除他的Facebook帐户,他可能会认为他仍然可以使用我自己的应用程序的默认登录屏幕登录我的Web应用程序。
但显然无法上传他们的Facebook密码,以便通过Laravel的身份验证来处理它 那么处理这个问题的最常见解决方案是什么?
答案 0 :(得分:0)
在您自己的登录系统中提供Facebook登录和重新使用Facebook帐户详细信息的最常见解决方案是使用像Sentry这样支持OAuth2(http://oauth.net/2/)的Laravel库。
因为你强迫Sentry :: login($ user,false);对于没有密码的用户,您可能希望生成密码字段以进行常规的非Facebook登录。 成功使用OAuth2针对FB登录您的网站后,您只需存储客户端密钥,将用户登录到您的系统,获取您需要的FB信息,并发送带有生成的PW的电子邮件,以便直接登录您的应用程序。 电子邮件:“感谢您通过Facebook注册此网站。您的PW是......”。
正如@ har2vey指出的那样,它与“重新发送我的密码”功能提供的功能相同,但是在通过OAuth登录后直接发送,而不是根据用户请求发送。
Sentry示例已经在SO:https://stackoverflow.com/a/19511907/1163786
上旁注: 如果你只是删除你的问题,那对花时间回答的人来说是不公平的。 我指的是switch-profiles-on-the-client-and-server。答案对其他人也有用。