我是Django的新手。我正在我的应用程序中实现facebook身份验证。我在终端输出中得到的错误就像是;
- name: add {{ deploy }} to sudoers
lineinfile: "dest=/etc/sudoers state=present line='{{ deploy }} ALL=(ALL) NOPASSWD:ALL'"
我做错了什么?是我新安装的django-python-social正确安装了吗?
答案 0 :(得分:8)
这似乎是 Django的社会身份验证已经issues和Django 1.8,所以我不知道它是否有使用Django 1.9的问题。我建议使用django-allauth,因为它是社交网络中used/rated package最多的,并且配置起来很容易:
pip install django-allauth
settings.py config
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
....
"django.core.context_processors.request",
# allauth specific context processors
"allauth.account.context_processors.account",
"allauth.socialaccount.context_processors.socialaccount",
],
},
},]
AUTHENTICATION_BACKENDS = (
# Default backend
"django.contrib.auth.backends.ModelBackend",
# `allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend",
)
INSTALLED_APPS += (
# The Django sites framework is required
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
# Login Facebook provider
'allauth.socialaccount.providers.facebook',
)
SITE_ID = 1
添加:
urlpatterns = patterns('',
...
#Auth URLS
url(r'^accounts/', include('allauth.urls')),
)
最后应用数据库迁移
运行服务器并转到管理界面 http://127.0.0.1:8000/admin/sites/site并为其创建网站 localhost,127.0.0.1:8000,或您的网站域名 生产。它应该具有等于配置的SITE_ID的id 在设置之前。
配置您的Facebook应用以获取密钥,然后在http://127.0.0.1:8000/admin/socialaccount/socialapp
- >你也可以找到这个tutoriel有用的
答案 1 :(得分:6)
django-social-auth已被正式弃用,转而使用python-social-auth。所以你不应该使用它。此外,导入错误很可能是由于与Django 1.9不兼容,因为django已经弃用了importlib。