繁体   English   中英

一种在Django应用中实现Facebook登录的简单且最新的方法

[英]A simple and up-to-date way to implement Facebook login in a Django app

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

首先,我想精确定义我所需要的:允许用户使用其Facebook凭据登录到我的应用程序的选项。 该应用程序将保存一个匹配的经典Django用户。 我将只需要使用用户的个人资料图片,并确保每次相同的Facebook用户都将与匹配的Django用户相关联。

不幸的是,由于以下原因,我发现实在令人沮丧:

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

我知道开发人员会在他们的应用程序中以某种方式实现Facebook身份验证包,但是我只是不知道该怎么做。

如果有人可以告诉我:在这个时候,将Facebook身份验证添加到我的Django应用中的最佳方法是什么? 我还将要求提供详细的文档/教程,以说明如何从设置和配置级别到注册Django应用程序和客户端代码登录Facebook用户。

解决问题的方法有多种,“最佳”方法实际上是主观的。

从主观上讲,您可以选择django-allauth 这里有一些指针可以帮助您入门:

  • 如果要简化注册过程,请将SOCIALACCOUNT_AUTO_SIGNUP设置为True ,以实现“无问题”登录。 用户只需批准FB对话框,最终他们便立即登录到您的站点。

  • 在您的模板中添加一个登录按钮只是以下问题:

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

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

理解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/关于即将推出的功能或已删除的功能。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM