Django在django-social-auth中出错

时间:2015-12-13 16:52:30

标签: python django facebook authentication oauth

我是Django的新手。我正在我的应用程序中实现facebook身份验证。我在终端输出中得到的错误就像是;

- name: add {{ deploy }} to sudoers
  lineinfile: "dest=/etc/sudoers state=present line='{{ deploy }} ALL=(ALL) NOPASSWD:ALL'"

我做错了什么?是我新安装的django-python-social正确安装了吗?

2 个答案:

答案 0 :(得分:8)

这似乎是 Django的社会身份验证已经issues和Django 1.8,所以我不知道它是否有使用Django 1.9的问题。我建议使用django-allauth,因为它是社交网络中used/rated package最多的,并且配置起来很容易:

  1. pip install django-allauth
  2. 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
    
  3. urls.py 中的
  4. 添加:

    urlpatterns = patterns('',
        ...
        #Auth URLS
        url(r'^accounts/', include('allauth.urls')),
    )
    
  5. 最后应用数据库迁移

  6. 运行服务器并转到管理界面 http://127.0.0.1:8000/admin/sites/site并为其创建网站 localhost,127.0.0.1:8000,或您的网站域名 生产。它应该具有等于配置的SITE_ID的id 在设置之前。

  7. 配置您的Facebook应用以获取密钥,然后在http://127.0.0.1:8000/admin/socialaccount/socialapp

  8. 创建Facebook的社交应用程序

    - >你也可以找到这个tutoriel有用的

答案 1 :(得分:6)

django-social-auth已被正式弃用,转而使用python-social-auth。所以你不应该使用它。此外,导入错误很可能是由于与Django 1.9不兼容,因为django已经弃用了importlib。