django socialauth twitter, google oauth, facebook не работает - PullRequest
0 голосов
/ 16 января 2012

Это мой первый пост, и у меня возникла проблема, я не смог заставить его работать django OMAB socialauth из трех вещей, которые мне просто нужны: Google, Facebook и Twitter, Google хорошо работает с открытым идентификатором, но не очень щебетать, и я вставил свой

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

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, а затем вход в систему через твиттер отправляет меня по этому адресу: http://127.0.0.1:8000/login/error/ и сообщение о том, что является неверной службой аутентификации

это происходит с Facebook и Google oauth и oauth2

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

Ответы [ 2 ]

1 голос
/ 16 января 2012

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

При отладке стороннего приложения oauth / openid в Django, как правило, оно сводится к:

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

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

Судя по вашей ошибке, вы неправильно настроили свой URL обратного вызова в Twitter. Он должен отправлять вас на 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 , ваш собственный компьютер. В результате невозможно использовать его для аутентификации или в любых других целях вне программ, работающих на вашем компьютере. См. эту статью для получения дополнительной информации.

0 голосов
/ 30 июля 2013

Я не уверен, но у меня могут быть похожие проблемы, Оскар. Для меня SocialAuth генерировал AuthenticationURL для Facebook, Foursquare и Hotmail, но не для Google, Twitter или любого другого адреса, который он поддерживает. Я думаю, что это может быть что-то не так с API, поэтому я разместил проблему в социальной группе Google auth ... вы можете проверить там, чтобы кто-нибудь обновился !!

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

...