Django 在使用facebook进行身份验证时,为什么要将example.com作为重定向uri?

Django 在使用facebook进行身份验证时,为什么要将example.com作为重定向uri?,django,authentication,facebook,Django,Authentication,Facebook,我已经为我的网站设置了facebook身份验证 当我点击“使用facebook登录”时,它会将我扔到以下url: https://graph.facebook.com/oauth/authorize?redirect_uri=http%3A%2F%2Fexample.com%2Fla_facebook%2Fcallback&display=page&client_id=126197457491070 重定向url是“example.com”,这显然是不正确或不允许的 然而,在我

我已经为我的网站设置了facebook身份验证

当我点击“使用facebook登录”时,它会将我扔到以下url:

https://graph.facebook.com/oauth/authorize?redirect_uri=http%3A%2F%2Fexample.com%2Fla_facebook%2Fcallback&display=page&client_id=126197457491070
重定向url是“example.com”,这显然是不正确或不允许的

然而,在我的代码或我正在使用的身份验证包中没有example.com设置,所以这必须由facebook生成?我在哪里可以换?为什么它与我在facebook应用程序设置中设置的域和网站不同

由于该重定向url,我收到以下错误:

{ 
   "error": { 
      "message": "Invalid redirect_uri: Given URL is not permitted by 
      the application configuration.", 
      "type": "OAuthException" 
  } 
} 
我正在使用Django与Heroku和Django-la facebook(https://
github.com/cartweelweb/django-la-facebook)

django.contrib.sitesframework中的默认站点是example.com。您可以从默认管理员或通过django shell更改它

有关更多信息,请参阅网站框架。

如果您查看用于通过facebook进行身份验证的django应用程序,您将看到如下内容:

def callback_url(self):
        """
current site id
grab base site url
grab callback url
return base and callback url
"""

        current_site = Site.objects.get(pk=settings.SITE_ID)
        # @@@ http fix
        base_url = "http://%s" % current_site.domain
        callback_url = reverse("la_facebook_callback")
        return "%s%s" % (base_url, callback_url)
正如burhan指出的,默认的contrib.sites域被用作重定向uri的基础,因此您应该将其修复为您的实际域