簡體   English   中英

Django-Allauth社交登錄名不可用(socialaccount.providers未傳遞到模板)

[英]Django-Allauth social login not available (socialaccount.providers not passed to templates)

我使用的是django 1.8和最新的django-allauth。 我已經按照官方文檔進行安裝。 但是,創建了Facebook社交應用后,我在登錄頁面中看不到它。 無論如何,這就是我所做的:

# Settings.py
INSTALLED_APPS = (
    ...
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',
)

TEMPLATE_CONTEXT_PROCESSORS = (
    # Required by `allauth` template tags
    'django.core.context_processors.request',
    # `allauth` specific context processors
    'allauth.account.context_processors.account',
    'allauth.socialaccount.context_processors.socialaccount',
)

AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',
    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
)

SOCIALACCOUNT_PROVIDERS = {
    'facebook':
        {'SCOPE': ['email', 'public_profile', 'user_friends'],
        'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
        'METHOD': 'js_sdk',  # instead of 'oauth2'
        'VERIFIED_EMAIL': False,}
}

SITE_ID = 1

創建一個域名和名稱為example.com:8000的網站: example.com:8000創建一個具有提供程序Facebook應用,相應的Client idSecret key也將先前創建的網站添加到了“站點”中。 example.com:8000 )。

問題截圖:

在此處輸入圖片說明

模板代碼:

登錄模板源代碼提供者列表摘錄源代碼

編輯:

我懷疑問題是特定於django 1.8的,因為自django 1.8起就不推薦使用TEMPLATE_CONTEXT_PROCESSORS,並且allauth期望設置文件中的TEMPLATE_CONTEXT_PROCESSORS。

謝謝。

在Django 1.8中, TEMPLATE_CONTEXT_PROCESSORS設置是通過以下方式處理的:

TEMPLATES = [
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(PROJECT_ROOT, 'templates')],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            # needed for admin templates
            'django.contrib.auth.context_processors.auth',
            # allauth needs this from django
            'django.core.context_processors.request',
            # allauth specific context processors
            'sites.allauth.account.context_processors.account',
            'sites.allauth.socialaccount.context_processors.socialaccount',
          ],
       },
    }
]

如果那是您遇到的唯一問題,那么此更改應該可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM