0

I'm trying to integrate facebook login to my site with python-social-auth.

This is my setting.py file:

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'social.apps.django_app.default',
)

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

ROOT_URLCONF = 'boeldev.urls'

WSGI_APPLICATION = 'boeldev.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'boeldev.db',
    }
}



# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'

TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),)

AUTHENTICATION_BACKENDS = (
  'social.backends.google.GoogleOAuth2',
  'social.backends.facebook.FacebookOAuth2',
  'django.contrib.auth.backends.ModelBackend',
)

SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/entries/'
SOCIAL_AUTH_LOGIN_ERROR_URL = '/login-error/'

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'XXXX.apps.googleusercontent.com'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'XXXX'

SOCIAL_AUTH_FACEBOOK_KEY = 'XXXX'
SOCIAL_AUTH_FACEBOOK_SECRET = 'XXXX'

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.user.get_username',
    'social.pipeline.mail.mail_validation',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
    'blog.pipeline.get_profile_picture',
)

But I'm getting following error after the login with facebook:

"Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains."

This is my facebook configuration: enter image description here

I know there are many issues on stackoverflow related to that error message, but any of them solved my problem.

What I'm doing wrong?

Thanks in advance!

Boel
  • 917
  • 2
  • 11
  • 23
  • 1
    First, you have `App Domains` empty, fill it with `127.0.0.1`, if that doesn't work try with `localhost` (and use the same for `Site URL`). Second, `Site URL` doesn't need to be `http://127.0.0.1:8000/entries/`, the value `http://127.0.0.1` is enough. I prefer to set `localhost` on this setting since it resembles a domain. – omab Feb 13 '14 at 02:25
  • thanks omab! and thanks for python-social-auth! – Boel Feb 13 '14 at 02:39
  • No problem, let me post my comment as an answer so you can flag it. – omab Feb 13 '14 at 04:38

1 Answers1

2

First, you have App Domains empty, fill it with 127.0.0.1, if that doesn't work try with localhost (and use the same for Site URL). Second, Site URL doesn't need to be http://127.0.0.1:8000/entries/, the value http://127.0.0.1 is enough. I prefer to set localhost on this setting since it resembles a domain.

omab
  • 3,721
  • 19
  • 23