我们是否需要客户端流程或服务器端流程或两者都用Facebook功能实现登录?

时间:2012-03-12 09:49:24

标签: facebook facebook-graph-api login oauth-2.0 facebook-login

目前在我的网站上,用户使用他们的登录ID和密码登录,他们还需要在注册时输入emaillogin_id表上的emailusers列都具有唯一索引。 users表还存储与用户关联的其他数据,例如genderlast_namefirst_name,但这些是可选(可为空)字段。

我想对网站进行两项更改。

第一个是,用户可以使用他们的电子邮件(除了login_id)登录。对于新用户,当他们注册时,他们不再需要提供login_id,因为他们将使用他们的电子邮件登录。

第二个变化是,他们可以登录facebook。对于新用户,如果他们第一次使用Facebook登录,他们的facebook uid将被获取并存储在我的数据库中。这意味着我必须在facebook_uid表格中添加users列。

对于现有用户,当他们第一次使用Facebook登录时,我应首先从他们的Facebook个人资料中获取他们的电子邮件地址,然后检查在users表中是否已存在使用该电子邮件的记录,如果是的,他们的facebook uid也将存储在该记录的facebook_uid列上。

根据facebook的说法,它的平台支持两种不同的OAuth 2.0流程供用户登录:服务器端流程和客户端流程。这个用例需要哪一个或两个?

此外,当我实现上述功能时,可以预见哪些问题?

1 个答案:

答案 0 :(得分:1)

你可以采取任何一种方法,这完全取决于你。这两种方法都可以为您提供所需的数据,这是您在后端与前端工作时的舒适度的问题。您只需要获得访问用户电子邮件地址的许可即可。

可能发生的问题:我不确定但是存储用户的Facebook ID可能存在法律限制。此外,如果有人(不是我,一个邪恶的人!)注册我的电子邮件地址并且您没有验证他们真的可以访问该地址 - 那么当我通过Facebook登录时,该应用程序将假设我们是同一个人和邪恶的黑客现在可以访问我的帐户。不太可能的情况,但可能会发生...