[英]A simple and up-to-date way to implement Facebook login in a Django app
这个问题在stackoverflow中很常见,对此有很多不同的问题和答案,但是我找不到我真正需要的东西。
首先,我想精确定义我所需要的:允许用户使用其Facebook凭据登录到我的应用程序的选项。 该应用程序将保存一个匹配的经典Django用户。 我将只需要使用用户的个人资料图片,并确保每次相同的Facebook用户都将与匹配的Django用户相关联。
不幸的是,由于以下原因,我发现实在令人沮丧:
我知道开发人员会在他们的应用程序中以某种方式实现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)也具有几乎相同的实现。
在婴儿步骤中:
了解如何在简单页面上安装FB Javascript SDK
使用FB.login确定登录状态并获取登录URL。
最后,使用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.