【问题标题】:How to avoid this facebook error when trying to authenticate in my site?尝试在我的网站中进行身份验证时如何避免此 facebook 错误?
【发布时间】:2014-03-11 16:16:35
【问题描述】:

我正在尝试使用 python-social-auth 将 Facebook 登录集成到我的网站。

这是我的 setting.py 文件:

# 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',
)

但我在使用 facebook 登录后出现以下错误:

"应用程序配置不允许给定 URL。: 一个或 应用程序的设置不允许更多给定的 URL。它必须 匹配网站 URL 或画布 URL,或者域必须是子域 应用程序的域之一。”

这是我的 Facebook 配置:

我知道 stackoverflow 上有很多与该错误消息相关的问题,但其中任何一个都解决了我的问题。

我做错了什么?

提前致谢!

【问题讨论】:

  • 首先,App Domains 为空,用127.0.0.1 填充,如果这不起作用,请尝试使用localhost(并为Site URL 使用相同的内容)。其次,Site URL 不需要是http://127.0.0.1:8000/entries/http://127.0.0.1 的值就足够了。我更喜欢在此设置上设置localhost,因为它类似于域。
  • 感谢 omab!并感谢 python-social-auth!
  • 没问题,让我发表我的评论作为答案,以便您标记它。

标签: facebook authentication oauth-2.0 django-socialauth python-social-auth


【解决方案1】:

首先,您的App Domains 为空,用127.0.0.1 填充,如果这不起作用,请尝试使用localhost(并对站点URL 使用相同的内容)。其次,Site URL 不需要是http://127.0.0.1:8000/entries/http://127.0.0.1 的值就足够了。我更喜欢在此设置上设置localhost,因为它类似于域。

【讨论】:

    猜你喜欢
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2017-03-28
    相关资源
    最近更新 更多