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

标签 javascript facebook-graph-api oauth openid facebook-oauth

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

最佳答案

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

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

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

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

关于javascript - 我应该如何识别使用 Facebook 登录注册的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26367072/

相关文章:

Laravel 护照 : how to validate bearer authorization code - without sign in

ruby-on-rails - 如何将带有 Devise 的 Rails 应用程序变成 OAuth 提供程序?

javascript - Java脚本如何传递附加事件的对象

javascript - 如何将函数和变量添加到 TypeScript 中先前实例化的对象

php - Graph API,获取带有创建日期或日期范围的广告过滤器

javascript - Facebook 页面插件不接受我的页面 URL

ios - 如何测试 facebook 好友标记

angularjs - AngularStack Facebook、Google+ 和 Twitter 身份验证

javascript - 为什么 Nodejs callback() 不能访问回调范围外的变量?

javascript - 使用 jquery 检查两种颜色是否接触