我们是否需要客户端流或服务器端流或两者来实现facebook功能的登录?
-
12-12-2019 - |
题
目前在我的网站上,用户使用他们的登录id和密码登录,他们还需要输入他们的 email
当他们注册。两者兼而有之 login_id
和 email
列上的 users
表具有唯一索引。 users
表还存储与用户相关联的其他数据,例如 gender
,last_name
,first_name
但这些是可选(可为空)字段。
我想对网站做两个改变。
第一个是,用户可以使用他们的电子邮件(除了 login_id
)登入。对于新用户,当他们注册时,他们不再需要提供一个 login_id
因为他们将使用他们的电子邮件登录。
第二个变化是,他们可以使用facebook登录。对于新用户,如果他们第一次使用facebook登录,他们的facebook uid将被获取并存储在我的数据库中。这意味着我将不得不添加一个 facebook_uid
列上的 users
表。
对于现有用户,当他们第一次使用facebook登录时,我应该首先从他们的facebook个人资料中获取他们的电子邮件地址,然后检查是否已经存在使用该电子邮件的记 users
表,如果是,他们的facebook uid也将存储在 facebook_uid
记录上的一栏。
据facebook称,其平台支持两种不同的OAuth2.0流用于用户登录:服务器端流和客户端流。此用例需要哪一个或两者?
另外,当我实现上面描述的功能时,会出现什么问题?
解决方案
你可以采取任何一种方法,这完全取决于你。这两种方法都将为您提供所需的数据,这是一个问题,即您在后端与前端工作的舒适程度。您只需要请求访问用户电子邮件地址的权限。
可能发生的问题:我不确定,但存储用户的facebook ID可能存在法律限制。另外,如果有人(不是我,一个邪恶的人!)注册我的电子邮件地址,你不验证他们真的可以访问该地址-然后当我通过facebook登录时,应用程序会假设我们是同一个人,邪恶的黑客现在可以访问我的帐不太可能的情况,但可能发生。..