почему при авторизации на facebook я получаю example.com как redirect_uri? - PullRequest
1 голос
/ 04 декабря 2011

Я настроил аутентификацию на Facebook для своего сайта.

Когда я нажимаю «Войти через Facebook», я получаю следующий URL:

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)

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

Сайт по умолчанию из django.contrib.sites framework - example.com.Вы можете изменить его из администратора по умолчанию или через оболочку django.

См. документацию для структуры сайтов для получения дополнительной информации.

1 голос
/ 05 декабря 2011

Если вы посмотрите на код приложения django, которое вы используете для аутентификации через Facebook, вы увидите что-то вроде этого:

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 перенаправления, поэтому вы должны исправить это, чтобы он был вашим действительным доменом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...