【发布时间】:2014-03-03 05:01:13
【问题描述】:
我成功地从The missing django-allauth tutorial 运行示例以使用 facebook 登录,但现在当我尝试从头开始安装 django-allauth 时出现此错误:
Given URL is not allowed by the Application configuration
在 facebook 中,我的网站 URL 设置为 http://127.0.0.1:8000/,这适用于示例,但不适用于我的应用程序。
错误可能来自哪里?
我也不明白 Django 管理中的“站点”字段:主页 › 社交帐户 › 社交应用程序 › 应用程序名称。它默认设置为example.com,我不知道在此处设置什么,虽然它适用于example.com作为示例...
仅供参考,这里是示例的主要 urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns(
'',
# prevent the extra are-you-sure-you-want-to-logout step on logout
(r'^accounts/logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
url(r'^', include('larb.urls')),
url(r'^accounts/', include('allauth.urls')),
url(r'^admin/', include(admin.site.urls)),
)
和 urls.py 用于larb:
from django.conf.urls import patterns, url
from larb import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index')
)
和我独特的主要 urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.views.generic.base import TemplateView
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from Romanesco import settings
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'draw.views.index'),
url(r'^accounts/', include('allauth.urls')),
url(r'^admin/', include(admin.site.urls)),
)
我注意到了一个不同之处,在示例中,facebook 按钮链接到 href="/accounts/facebook/login/" ;而在默认登录页面中(失败时)它是href="javascript:allauth.facebook.login('', 'authenticate', 'login')"。
如果我手动转到http://127.0.0.1:8000/accounts/facebook/login/,它可以工作!
【问题讨论】:
-
我遇到了完全相同的问题,非 js 链接到 FB 登录工作正常,否则不行。当我将
Website URL更改为http://localhost:8000/并将./manage.py runserver localhost:8000更改为this answer suggests 时,它立即生效。
标签: python django facebook django-allauth