在JavaScript应用中集成Facebook登录的技术指南
本节指导您如何在 Parse 环境中通过 Back4App 使用 Facebook API for JavaScript。
在本教程中,您将学习如何将 Facebook SDK 链接到您的 Parse 控制面板,以及如何实现 Facebook 登录, 注册, 注销, 链接 和 取消链接 功能。
通过遵循以下步骤,您将能够构建一个这样的系统: Back4App JavaScript 示例 Facebook 登录应用.
随时,您都可以在我们的 GitHub 仓库 中访问使用本教程构建的完整 Android 项目。
要完成本教程,您需要:
- 与 Back4App 连接的基本 JavaScript 应用程序。
- 您的应用程序的域名。
- 版本 2.6.5 或更高版本的 Parse Server。
- 注意:Parse Facebook SDK 仅在版本高于 2.6.5 的 Parse Server 上工作,本教程将使用该版本。因此,如果您使用的是较低版本的 Parse,请考虑升级。
要开始使用 JavaScript 的 Facebook SDK,您需要遵循以下步骤:
- 设置你的 Facebook 应用程序。
- 要将 Back4app 与你的 Facebook 应用程序链接,登录到你的 Back4App 账户,点击你的应用程序的 服务器设置,然后点击 ''Facebook 登录'' 块的 设置。它应该看起来像这样:
首先创建一个 使用 Facebook 登录 的函数,将用户保存到 Parse 数据库中。
不幸的是,无法使用 Facebook 提供的登录按钮,因为使用它登录 不会将新用户保存到 Parse 仪表板. 然而,当你使用 Parse SDK for Facebook, 它解决了服务器端的问题。
要轻松设计 Facebook 登录按钮,使用 HTML 和 CSS,请查看此实现: Facebook 登录按钮.
要开始登录实现,为你的 Facebook 登录 按钮分配一个 onClick 事件,调用以下 logIn 函数。要构建此函数,请按照以下步骤操作:
- 使用 Parse.FacebookUtils.logIn 来执行 Facebook 登录与 Parse 一起,此函数接收 Facebook 的权限作为参数。在此示例中,这些权限对应于公共资料和电子邮件。
注意:请参阅 Facebook 登录权限参考 以获取更多详细信息。
2. 检查用户是否已经在数据库中。如果是,则将他重定向到另一个页面。 3. 调用 FB.api 获取新用户的信息。在这个例子中,可以访问用户的 ID、姓名、电子邮件和权限。
注意: 要了解更多关于此功能的信息,请点击 这里.
4. 设置用户的属性、用户名和电子邮件,并将其保存到数据库中。 5. 重定向页面。
该 logIn() 代码如下:
登出功能比登录功能简单得多。这次,您将能够使用 Facebook 提供的按钮。然而,它仅用于登出目的,因为必须使用 Parse 的功能进行登录。因此,您应该仅在用户已经登录 Facebook 并希望登出时使用此按钮。
要查看 Facebook 按钮的官方参考,请点击 这里.
以下是您如何使用 Facebook SDK 实现此按钮:
注意: 此元素具有一个回调 onlogin, 当用户登出时调用我们的函数 logOutWithFacebook。是的,没错:在登出时触发 onlogin 事件。
该 logOutWithFacebook 函数将简单地将用户从其当前的 Parse 会话中登出,并将其重定向到另一个页面,如下所示:
Parse Facebook 可用的最后功能是 关联 和 解除关联 功能。
当 关联 是将现有的 Parse.User 与他的 Facebook 账户关联时,解除关联 是指移除这种关联。此关联可以在您的 Parse Dashboard 中看到,在 authData 列中,就在这里:
您可以使用列中的数据来验证您的 关联 和 解除关联 功能。
该 链接 函数在尝试再次链接用户之前检查当前用户是否已链接。它相当 简单,并使用 Parse.FacebookUtils SDK,如下所示:
对于 解除链接 函数,只需在当前 Parse 用户上调用 Parse.FacebookUtils.unlink,如您所见:
前往你的 authData 列以确认在函数调用后它是空的。
到此为止,你不仅学会了如何配置和使用 Facebook 登录 和 登出 功能与您的应用程序,还学会了如何与 Back4App 和 Parse 一起使用它们。
你现在掌握了 Parse Facebook SDK 的使用,可以随意开始使用它。
在 JavaScript SDK API 参考 和 Parse 开源文档用于 Javascript SDK 查看更多关于 Parse SDK 的信息。