我应该如何识别使用 Facebook 登录注册的用户?

Ran*_*tas 3 javascript openid oauth facebook-graph-api facebook-oauth

我正在尝试使用 Facebook 登录功能使用 JavaScript 将用户注册到我的 Web 应用程序,然后将用户信息传递到应用程序的服务器端,现在我必须保存信息,以便稍后可以作为该用户登录,但它应该在没有密码的情况下完成,我应该在我的应用程序的数据库中保存什么而不是密码,以便验证用户确实是他声称的身份而不是其他试图绕过我的安全的人?第一个想法是保存 Facebook 用户 ID 以对用户进行身份验证,但听起来根本不安全,这是一个好主意还是一个坏主意?还有其他的表演我需要的吗?

Bri*_*asa 5

我建议在 developer.facebook.com 上关注 Facebook 的 OAuth 示例。

我已经有一段时间没有完成任何 OAuth 工作了,但据我所知,Facebook 会执行对您指定的服务器的回调。当 Facebook 调用此回调时,他们会为您提供访问令牌。然后,您可以使用此访问令牌获取有关用户的信息(即电子邮件、名字、姓氏)。

由您决定在调用此回调时要执行的操作。也许您获取用户的电子邮件、名字和姓氏,并在您的后端自动为用户创建一个帐户(如果该帐户不存在)。如果您找到匹配的帐户(可能通过他们的电子邮件),则只需登录即可(无需为用户存储任何密码)。我认为这种方法没有什么可真正担心的,因为 Facebook 提供了一个类似于用户的唯一访问令牌,然后您的服务器将根据此访问令牌获取电子邮件。有人可以破解这个问题的唯一方法是,如果他们为用户获取了访问令牌,这并不容易(假设您使用 SSL)。

为了确定是否有人使用 Facebook 或其他方法创建了一个帐户,我会在您的“用户”表下创建一个列来指示此信息。