django socialauth twitter, google oauth, facebook не работает

Это мой первый пост, и у меня возникла проблема: я не могу заставить его работать django OMAB socialauth из трех вещей, которые мне нужны только для google, facebook и twitter, google хорошо работает с open id, но не так много twitter, и я добавил

настройки. ру:

TWITTER_CONSUMER_KEY              = '00' this is no real
TWITTER_CONSUMER_SECRET           = '00' this is no real
FACEBOOK_APP_ID                   = '' ihave no key
FACEBOOK_API_SECRET               = ''
LINKEDIN_CONSUMER_KEY             = ''
LINKEDIN_CONSUMER_SECRET          = ''
ORKUT_CONSUMER_KEY                = ''
ORKUT_CONSUMER_SECRET             = ''ihave no key
GOOGLE_OAUTH2_CLIENT_ID           = ''
GOOGLE_OAUTH2_CLIENT_SECRET       = ''
SOCIAL_AUTH_CREATE_USERS          = True
SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False
SOCIAL_AUTH_DEFAULT_USERNAME      = 'socialauth_user'
SOCIAL_AUTH_COMPLETE_URL_NAME     = 'socialauth_complete'
LOGIN_ERROR_URL                   = '/login/error/'
#SOCIAL_AUTH_USER_MODEL            = 'app.CustomUser'
SOCIAL_AUTH_ERROR_KEY             = 'socialauth_error'
GITHUB_APP_ID                     = ''
GITHUB_API_SECRET                 = ''
FOURSQUARE_CONSUMER_KEY           = ''
FOURSQUARE_CONSUMER_SECRET        = ''

LOGIN_URL          = '/login-form/'
LOGIN_REDIRECT_URL = '/'
LOGIN_ERROR_URL    = '/login-error/'

Я использую пример из архива OMAB socialauth django , но он не работает.

Когда я создал свое приложение для твиттера, я написал свой домен www.sisvei.com, я тестирую локально socialauth django, т.е. 127.0.0.1:8000, а затем войдите в систему с помощью твиттера, чтобы отправить меня на этот URL-адрес: http://127.0.0.1:8000/login/error/ и сообщение о том, что это неверная служба аутентификации

это происходит с facebook и google oauth и oauth2

Я новичок в django, и я проделал большую работу, включающую эту часть django socialath, надеюсь, мне поможет, большое спасибо.


person oscar    schedule 16.01.2012    source источник


Ответы (2)


Вы должны быть более конкретными в том, «почему это не работает». Где вы берете ошибки?

При отладке стороннего приложения oauth/openid в Django обычно все сводится к следующему:

  • конфигурация и ключи. Убедитесь, что вы получили все необходимые ключи API для сервисов, которые будете использовать, и добавили их в свою конфигурацию?
  • URL-адреса — вы не забыли добавить необходимые шаблоны URL-адресов в ваш базовый файл urls.py?
  • настройка аутентификации на сервере — часто вам нужно иметь доступный файл или отвечать определенным заголовком, когда служба аутентификации попадает на ваш сервер. Вы проверили, чтобы убедиться, что это настроено?
  • базы данных — запускали ли вы syncdb после установки приложения? Все столы накрыты?
  • шаблоны — если стороннее приложение требует от вас настройки шаблонов, настроены ли они у вас?
  • настраиваемые представления — используете ли вы настраиваемые представления? Если это так, попробуйте сначала использовать встроенные представления, поставляемые со сторонним приложением, чтобы увидеть, работают ли они.

После того, как они будут подтверждены, вы захотите увидеть, какие запросы выполняются. Используйте отладчик, включенный в Chrome/Safari, или получите надстройку веб-разработчика для Firefox и просматривайте сетевые запросы по мере их поступления. Видите ли вы HTTP-ответы, отличные от 200 (скажем, 404, 500, 403 и т. д.?), это означает, что службы не отвечают правильно.

Судя по вашей ошибке, вы неправильно настроили URL обратного вызова в Твиттере. Он должен отправлять вас на www.sisvei.com, а не на 127.0.0.1. В качестве альтернативы проверьте URL-адрес, когда вы попадете на страницу входа в Twitter — URL-адрес обратного вызова находится в URL-адресе и указывает ли он на 127.0.0.1? Затем Django отправляет неправильный URL-адрес обратного вызова.

Наконец это:

Я написал, что мой домен www.sisvei.com python не поддерживает это

Неясно. Насколько я знаю, Python не волнует, какой домен.

ПОДОЖДИТЕ МИНУТУ...

Вы используете runserver? Вы получаете следующую ошибку?

Ошибка: «www.sisvei.com» не является допустимым номером порта или парой адрес:порт.

Если да, то это легко исправить! Просто запустите его так:

python manage.py runserver www.sisvei.com:80

Это должно устранить вашу ошибку, если это то, что происходит. Вы, вероятно, используете его как

python manage.py runserver 127.0.0.1

127.0.0.1 — это зарезервированный IP-адрес, указывающий на localhost, ваш собственный компьютер. В результате невозможно использовать его для аутентификации или любых других целей, кроме программ, работающих на вашем собственном компьютере. Дополнительную информацию см. в этой статье. Информация.

person Jordan Reiter    schedule 16.01.2012
comment
Все, что я делаю локально, у меня нет ни на одном хостинге. Я использую пример, который приходит: [ссылка] (github. com/omab/django-social-auth/tree/master/example) - person oscar; 16.01.2012
comment
что-то вроде этого: social.matiasaguirre.net Я отредактирую свой вопрос - person oscar; 16.01.2012
comment
@oscar, вы не можете использовать внешнюю аутентификацию, пока ваш веб-сайт не будет работать в домене, который могут видеть другие серверы (например, Twitter). До тех пор ваша авторизация невозможна. - person Jordan Reiter; 18.01.2012
comment
@JordanReiter: это неверно. Многие сервисы можно настроить на использование localhost:8000 в качестве сервера. Нет связи сервер-›сервер с openid или oauth, вот и весь смысл. - person GDorn; 25.05.2013

Я не уверен, но у меня могут быть похожие проблемы, Оскар. Для меня SocialAuth генерировал AuthenticationURL для facebook, foursquare и hotmail, но не для google, twitter или любого другого адреса, который он поддерживает. Я думаю, что это может быть что-то не так с API, поэтому я разместил проблему в группе google social-auth... вы можете проверить там, чтобы узнать, обновляется ли кто-нибудь!!

https://code.google.com/p/socialauth/issues/detail?id=282&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Modified

person Alex Spangher    schedule 29.07.2013