这个问题在stackoverflow中很常见,关于它有很多不同的问题和答案,但我找不到我需要的东西。
首先,我想准确定义我需要的内容:让用户使用他们的Facebook凭据登录我的应用程序的选项。该应用程序将保存匹配的经典Django用户。我只需要使用用户的个人资料图片,并确保每次相同的Facebook用户与匹配的Django用户相关。
不幸的是,由于以下原因,我觉得实施起来非常令人沮丧:
我知道开发人员会在他们的应用程序中以某种方式实现Facebook身份验证包,但我无法弄清楚如何做到这一点。
如果有人能告诉我:在这个时间点,将Facebook身份验证添加到我的Django应用程序的最佳方法是什么?我还要求详细的文档/教程解释如何登录Facebook用户,从设置和配置级别到注册到Django应用程序和客户端代码。
答案 0 :(得分:3)
有多种方法可以解决这个问题,“最佳”方式是什么主观方式。
主观上,您可以选择django-allauth
。以下是一些可以帮助您入门的建议:
如果您希望简化注册,请将SOCIALACCOUNT_AUTO_SIGNUP
设置为True
,以便实现“无问题”登录。用户只需批准FB对话框,他们就会立即登录您的网站。
向模板添加登录按钮只需要:
<a href="{% provider_login_url "facebook" %}">Sign In</a>
该应用程序支持JS SDK登录(专业版:用户习惯于出现的典型FB弹出窗口),或者您可以使用自己的OAuth流程。无论你喜欢什么。
答案 1 :(得分:1)
了解FB的Oauth 2.0流程的最快方法是使用FB的Javascript SDK。一旦掌握了它,FB的PHP库就差不多了。此外,其他OAuth网站(如Google,Twitter或Dropbox)的实施几乎相同。
在婴儿步骤中:
了解如何将FB Javascript SDK安装到简单的网页
使用FB.login确定登录状态并获取登录网址。
最后,使用FB.Event.Subscribe并订阅auth.statusChange以检测登录/注销更改。
另外,很高兴查看https://developers.facebook.com/roadmap/即将删除的功能或功能。
答案 2 :(得分: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。