2

这个问题在stackoverflow中很常见,关于它有很多不同的问题和答案,但我找不到我真正需要的东西。

首先,我想准确定义我需要什么:让用户使用他们的 Facebook 凭据登录我的应用程序的选项。该应用程序将保存一个匹配的经典 Django 用户。我只需要使用用户的个人资料图片并确保每次相同的 Facebook 用户都与匹配的 Django 用户相关。

不幸的是,由于以下原因,我发现实施起来真的很令人沮丧:

  1. 到现在为止,在阅读了很多之后,我找不到这个任务的最佳包是什么。
  2. 有些人推荐 django-social-auth 并称赞它的功能和文档。就个人而言,我不明白为什么,因为它不是专门针对 Facebook 的,也没有关于客户端的解释,即 Facebook 登录按钮以及整个流程是如何工作的。
  3. 当您访问 Facebook 开发人员时,您会突然发现自己正在阅读一些神奇的 javascript sdk,以及您所需要的承诺。然后您再次感到沮丧,并且无法理解客户端相关的 sdk 如何让用户注册您的应用程序。

我知道开发人员以某种方式在他们的应用程序中实现了 Facebook auth 包,但我就是不知道该怎么做。

如果有人能告诉我:在这个时间点,将 Facebook 身份验证添加到我的 Django 应用程序的最佳方式是什么?我还需要详细的文档/教程来解释如何登录 Facebook 用户,从设置和配置级别到注册到 Django 应用程序和客户端代码。

4

3 回答 3

3

有多种方法可以解决这个问题,什么是“最好”的方法真的很主观。

主观上,你可以选择django-allauth。以下是一些可帮助您入门的提示:

  • 如果您想保持注册简单,请设置SOCIALACCOUNT_AUTO_SIGNUPTrue以实现“无问题”登录。用户只需批准 FB 对话框,他们就会立即登录您的网站。

  • 在模板中添加登录按钮仅仅是:

    <a href="{% provider_login_url "facebook" %}">Sign In</a>

  • 该应用程序支持 JS SDK 登录(亲:用户习惯于出现的典型 FB 弹出窗口),或者您可以使用自己的 OAuth 流程。随便你。

于 2012-09-01T11:25:56.610 回答
1

了解 FB 的 Oauth 2.0 流程的最快方法是使用 FB 的 Javascript SDK。一旦你掌握了窍门,FB 的 PHP 库就是类似的。此外,其他 OAuth 网站(如 Google、Twitter 或 Dropbox)也有几乎相同的实现。

在婴儿步骤中:

  1. 了解如何将FB Javascript SDK安装到一个简单的页面上

  2. 使用FB.login确定登录状态并获取登录 url。

  3. 最后,使用FB.Event.Subscribe并订阅 auth.statusChange 来检测登录/注销更改。

此外,很高兴查看https://developers.facebook.com/roadmap/即将推出的功能或将要删除的功能。

于 2012-09-01T03:57:40.347 回答
0

django-social-auth 不仅适用于 Facebook,但这并不意味着您应该使用所有可用的后端。

项目文档位于http://django-social-auth.readthedocs.org/en/latest/index.html,Facebook后端详细信息位于http://django-social-auth.readthedocs.org/en/latest/backends/ facebook.html

于 2012-09-01T00:16:27.957 回答