我为我的网站设置了facebook身份验证。
当我点击“使用facebook登录”时,它会将我引发到以下网址:
https://graph.facebook.com/oauth/authorize?redirect_uri=http%3A%2F%2Fexample.com%2Fla_facebook%2Fcallback&display=page&client_id=126197457491070
redirect_url是“example.com”,显然不正确或不允许。
然而,在我的代码或我使用的身份验证包中没有任何地方是example.com设置,所以这必须由facebook生成?我在哪里可以更改它?为什么它与我在facebook应用程序设置中设置的域名和网站不一样?
由于redirect_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/cartwheelweb/django-la-facebook)
答案 0 :(得分:2)
django.contrib.sites
框架的默认网站是example.com。您可以从默认管理员或通过django shell更改它。
有关更多信息,请参阅the documentation了解网站框架。
答案 1 :(得分:1)
如果您查看用于通过Facebook进行身份验证的django应用的the code,您会看到以下内容:
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的基础,所以你应该将它修复为你的实际域。