【问题标题】:Django allauth & facebook: Given URL is not allowed by the Application configurationDjango allauth 和 facebook:应用程序配置不允许给定 URL
【发布时间】: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


【解决方案1】:

在您的 Facebook 应用程序 (https://developers.facebook.com/x/apps/.../settings/advanced/) 的参数中,请务必添加平台网站并添加 url:http://127.0.0.1:8000/ 并且在高级之后(仍在参数上)将“嵌入式浏览器 OAuth 登录”和“客户端 OAuth 登录”放在!

编辑

好的,所以您需要在管理站点中添加http://127.0.0.1:8000,然后在您打开每个社交应用程序并在站点字段中添加 localhost 而不是示例。

【讨论】:

  • “嵌入式浏览器 OAuth 登录”已关闭,但仍无法使用默认链接。它仍然适用于手动添加的链接http://127.0.0.1:8000/accounts/facebook/login/
  • 你确定你在 facebbok 应用程序中创建一个平台来链接你的应用程序吗?因为我认为错误对应于 facebook 的错误配置....
  • 是的,我添加了一个网址为http://127.0.0.1:8000/ 的网站,它与http://127.0.0.1:8000/accounts/facebook/login/ 一起使用。
  • 我试过了,它不起作用(或者我误解了......),但我对静态链接解决方案很好。
  • 好吧,对不起我的英语;)
【解决方案2】:

在您的浏览器中,将http://127.0.0.1:8000/ 更改为localhost:8000/

这应该可以解决问题。

还在平台网站下,将网站网址改为http://localhost:8000/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2016-01-06
    相关资源
    最近更新 更多