0

这是我的第一篇文章,我遇到了一个问题,我无法让它工作django OMAB socialauth我只需要谷歌、脸书和推特的三件事,谷歌与开放 ID 配合得很好,但推特不多,我把我的

设置。py:

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的 zip 中的示例,但无法正常工作。

当我创建我的 twitter 应用程序时,我写了我的域 www.sisvei.com,我在本地测试 socialauth django 即 127.0.0.1:8000,然后用 twitter 登录将我发送到这个 url:http: //127.0.0.1 :8000 /login/error/ 和一条消息说是不正确的身份验证服务

这发生在 facebook 和 google oauth 和 oauth2

我是 django 的新手,我在 django socialath 的这一部分中做了很多工作,希望对我有所帮助,非常感谢。

4

2 回答 2

1

您需要更具体地说明“为什么它不起作用”。你在哪里得到错误?

在 Django 中调试第三方 oauth/openid 应用程序时,通常归结为:

  • 配置和密钥 - 您是否确保为您将使用的服务获取所有必要的 API 密钥,并将它们添加到您的配置中?
  • urls - 您是否记得将必要的 urlpatterns 添加到您的基本urls.py文件中?
  • 服务器上的身份验证设置 - 通常,当身份验证服务访问您的服务器时,您需要有一个可用的文件或使用特定的标头进行响应。您是否检查以确保已设置?
  • 数据库 - 您syncdb在安装应用程序后运行了吗?所有的桌子都摆好了吗?
  • 模板 - 如果第三方应用程序要求您设置模板,您是否设置了它们?
  • 自定义视图 - 您是否使用自定义视图?如果是这样,请先尝试使用第三方应用程序附带的内置视图,看看它们是否有效

确认这些后,您将希望能够查看正在发生的请求。使用 Chrome/Safari 中包含的调试器,或获取 Firefox 的 Web 开发者插件,并查看发生的网络请求。您是否看到除 200 以外的 HTTP 响应(例如,404、500、403 等?)这意味着服务没有正确响应。

从您的错误来看,您似乎没有在 Twitter 上正确设置回调 URL。它应该将您发送到 www.sisvei.com,而不是 127.0.0.1。或者,当您到达 Twitter 登录页面时检查 URL——是 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 。因此,除了在您自己的机器上运行的程序之外,不能将其用于身份验证或任何其他目的。有关更多信息,请参阅本文

于 2012-01-16T19:08:13.400 回答
0

我不确定,但我可能有类似的问题,奥斯卡。对我来说,SocialAuth 正在为 facebook、foursquare 和 hotmail 生成一个 AuthenticationURL,但不是为 google、twitter 或它支持的任何其他地址生成一个 AuthenticationURL。我认为 API 可能有问题,所以我在 social-auth google 组上发布了一个问题...您可能想在那里查看是否有人更新!

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

于 2013-07-29T20:24:00.343 回答