【问题标题】:django socialauth twitter , google oauth , facebook does not workdjango socialauth 推特,谷歌 oauth,facebook 不工作
【发布时间】:2012-02-11 12:59:54
【问题描述】:

这是我的第一篇文章,我遇到了一个问题,我无法让它工作 django OMAB socialauth 我只需要 google、facebook 和 twitter 的三件事,google 与 open id 配合得很好,但没有太多 twitter,我放入我的

设置。 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 的这一部分中做了这么多工作,希望对我有所帮助,非常感谢。

【问题讨论】:

    标签: django facebook twitter socialauth


    【解决方案1】:

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

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

    • 配置和密钥 - 您是否确保为您将使用的服务获取所有必要的 API 密钥,并将它们添加到您的配置中?
    • urls - 您是否记得将必要的 urlpatterns 添加到您的基本 urls.py 文件中?
    • 服务器上的身份验证设置 - 通常,当身份验证服务访问您的服务器时,您需要有一个可用的文件或使用特定的标头进行响应。您是否已检查以确保已设置?
    • databases - 安装应用程序后您是否运行过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。因此,不可能将其用于身份验证或在您自己的计算机上运行的程序之外的任何其他目的。请参阅this article 了解更多信息。

    【讨论】:

    • 我在本地所做的只是我没有在任何托管中。我使用的是进来的例子:[link] (github.com/omab/django-social-auth/tree/master/example)
    • 显示如下内容:social.matiasaguirre.net 我将编辑我的问题
    • @oscar 您不能使用外部身份验证,除非您的网站在其他服务器(如 Twitter)可以看到的域上运行。在此之前,您的授权将失败。
    • @JordanReiter:这是不正确的。许多服务可以配置为使用 localhost:8000 作为服务器。没有 server->server 与 openid 或 oauth 的通信,这就是重点。
    【解决方案2】:

    我不确定,但我可能遇到了类似的问题,奥斯卡。对我来说,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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多