2017-10-07 19 views
0

私はsocial-auth-app-djangoをインストールし、ガイドhereに従ってFacebookのログインをdjango 1.8.18に統合しました。問題は私が「http://localhost:8000/social-auth/login/facebook/」に行くときにエラーが発生するFacebookのdjangoソーシャル認証エラーを解決するには?

URLを読み込めない:このURLのドメインは、アプリケーションのドメインに含まれていません。 このURLを読み込むには、 アプリのすべてのドメインとサブドメインをアプリ設定の[アプリドメイン]フィールドに追加します。

ここにここに私のsettings.pyファイル

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
print (BASE_DIR) 

SECRET_KEY = 'x220#z=kwd)kjiu#u+p$)v0lu+rspyosg+)l*k$ux9j)1h' 
DEBUG = True 

ALLOWED_HOSTS = ['localhost']  
INSTALLED_APPS = (
    ... 
    'account', 
    'social_django', #social classes 
) 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
    'social_django.middleware.SocialAuthExceptionMiddleware', 
) 

ROOT_URLCONF = 'bookmark.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
'social_django.context_processors.backends', # <-- 
       'social_django.context_processors.login_redirect', # <-- 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'bookmark.wsgi.application' 

STATIC_URL = '/static/' 
MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(BASE_DIR,'media/') 
from django.core.urlresolvers import reverse_lazy 
LOGIN_REDIRECT_URL = reverse_lazy('dashboard') 
LOGIN_URL = reverse_lazy('login') 
LOGOUT_URL = reverse_lazy('logout') 

AUTHENTICATION_BACKENDS = (
    'social_core.backends.facebook.FacebookOAuth2', #< --facebook 

    'django.contrib.auth.backends.ModelBackend', 
    'account.authentication.EmailAuthBackend', 
) 

SOCIAL_AUTH_FACEBOOK_KEY='1742581762468139' 
SOCIAL_AUTH_FACEBOOK_SECRET='eae7dsfdsfdsf90b219becb84' 

urls.pyファイル

from django.conf.urls import include, url 
from django.contrib import admin 
from django.conf import settings 
from django.conf.urls.static import static 

    urlpatterns = [ 
     url(r'^admin/', include(admin.site.urls)), 
    url(r'^social-auth/',include('social_django.urls', namespace='social')), # <-- social facebook 
     url(r'^account/',include('account.urls')), 
     url(r'^$','account.views.dashboard',name="dashboard"), 
    ] 
    if settings.DEBUG: 
     urlpatterns += static(settings.MEDIA_ROOT, 
           document_root=settings.MEDIA_ROOT) 

は、Facebookの開発者がアプリの設定がされたスクリーンショット enter image description here

の詳細を私はまた、ローカルホストを変更しました"bookmarks.com"のようなものに変更し、/ etc/hostsファイルで変更しましたが、sam eエラーerror

答えて

1

幸いにも私はこの質問につまずいた。それでも問題が解決しない場合は、以下を試してみてください。ダッシュボードタブを開いているときはdeveloper.facebook.com/appsにアクセスしてください。左側のUIと下部の「製品」に表示されます。 Facebookのログインアプリをまだ追加していない場合は、今すぐ登録してください。それをクリックした後、「Facebook Login」の下の「Settings」をクリックしてください。

「リダイレクトURIに厳密なモードを使用する」と表示されている場合は、クライアントOAuthの設定が表示されているはずですが、無効にしますが、「有効なOAuthリダイレクトURI」を追加する必要がありますあなたの左上の設定、 "Appドメイン、すなわち:localhost"と "URL Site、ie:localhost:8000 /"に一致するlocalhost:8000を追加するだけです。それはトリックを行う必要があります!それは私にできるだけ早く戻ってください。

+1

それは私に働く..乗客 – Romeo

0

social-auth-app-djangoを使用しているときに同様の問題が発生しました。この問題は、 'app domain'と 'Oauth redirect url'を変更しても永続的でした。 Facebookの設定。

最後に、この問題はバージョンの不一致が原因であることが判明しました。だから私は設定で次のを追加し、それが働いた、

SOCIAL_AUTH_FACEBOOK_API_VERSION = '2.11' 
関連する問題