2014-12-19 3 views
0

Раньше я работал над своим приложением Django на локальном сервере, и все мои настройки работают с django-allauth (я использовал manage.py runserver, а не nginx + gunicorn для постановки/производства)Не удалось войти в систему Facebook с помощью django-allauth

Теперь я реализую django-allauth на своем промежуточном веб-сайте, но я не могу заставить его работать на моем промежуточном сервере (Примечание: в этом примере я заменил свое доменное имя на mydomain.com).

В основном после того, как я нажал на ссылку для входа в систему с Facebook на http://staging.mydomain.com/accounts/login/, он перенаправляет на https://www.facebook.com/dialog/oauth?response_type=code&state=YXdAxg2WiIBo&redirect_uri=http%3A%2F%2Fstaging.mydomain.com%2Faccounts%2Ffacebook%2Flogin%2Fcallback%2F&client_id=1600059933550804&scope=email&auth_type=reauthenticate и я получаю следующие ошибки:

Данный URL не допускается в конфигурации приложения .: Один или больше данные URL-адреса не допускаются настройками приложения. Он должен соответствовать URL-адресу веб-сайта или URL холста, или домен должен быть поддоменом одного из доменов приложения.

Вот мои настройки файлов:

Nginx конф файл

server { 
    listen 80; 
    server_name staging.mydomain.me; 

    location /static { 
      alias /home/myusername/sites/staging.mydomain.me/static; 
    } 

    location/{ 
      proxy_set_header Host $host; 
      proxy_pass http://unix:/tmp/staging.mydomain.me.socket; 
    } 
} 

settings.py

... 

SITE_ID = 1 

LOGIN_REDIRECT_URL = '/' 
ACCOUNT_EMAIL_REQUIRED = True 
SOCIALACCOUNT_PROVIDERS = { 
    'facebook': { 
     'SCOPE': ['email'], 
     'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 
     'METHOD': 'oauth2', 
     'VERIFIED_EMAIL': False, 
    } 
} 

AUTH_USER_MODEL = 'users.User' 
ACCOUNT_ADAPTER = 'users.adapters.AccountAdapter' 
ACCOUNT_SIGNUP_FORM_CLASS = 'users.forms.UserApplicationForm' 
ACCOUNT_LOGOUT_ON_GET = True 

... 

Настройки в Facebook приложение

Facebook settings

Настройки в Сайты [http://staging.mydomain.com/admin/sites/site/1/]

Django Sites settings

Настройки социального применения [http://staging.mydomain.com/admin/socialaccount/socialapp/2/]

Django-allauth social app settings

ответ

0

Попробуйте один из theese 2 вещи:

  1. создать тест приложение для вашего facebook приложения и установить домен staging.mydomain.com для него, настроить совершенно новое социальное приложение (allauth) с новым ключом апи и секрет (для вашего нового тестового приложения), новый сайт django и т. д. ...
  2. измените настройки вашего приложения facebook, чтобы в качестве домена приложения был создан staging.mydomain.com.

Я думаю, что оба решения будут работать, но я предпочитаю первый, так как ваше промежуточное приложение отлично вписывается в определение «тестового приложения», и поэтому я думаю, что это более элегантное решение.

Надеюсь, это вам поможет.

Смежные вопросы