django-allauth和Twitter集成 - 社交网络登陆失败

5

我正在尝试使用django-allauth。我按照github页面上的说明进行操作,完成了以下步骤:

  1. Added allauth urls into urls.py

    urlpatterns += patterns ('',
        url('^accounts/', include('allauth.urls')),
        url('^accounts/profile/$', ProfileView.as_view(), name='ProfileView'),
        url('^login/$', login, name='account_login'),
        url('^logout/$', logout, name='account_logout'),
        url('^login/cancelled/$', login_cancelled, name='socialaccount_login_cancelled'),
        url('^login/error/$', login_error, name='socialaccount_login_error'),
    )
    
  2. Updated TEMPLATE_CONTEXT_DIRS, TEMPLATE_CONTEXT_PROCESSORS, AUTHENTICATION_BACKENDS and INSTALLED_APPS. Also added ACCOUNT_AUTHENTICATION_METHOD = "username_email"

  3. Added Key and Secret for twitter in the Social apps table.

  4. Copied django-allauth templates to my app's directory and modified it. I can see all the templates working fine like /accounts/signup/ and /accounts/social/connections/.

现在,当我点击Twitter链接 /accounts/twitter/login/ 进行连接或注册时,会出现以下错误信息:

社交网络登录失败

尝试通过您的社交网络帐户进行登录时发生错误。

我是否遗漏了什么?可能是一些愚蠢的错误(Twitter登录网址?没有线索!)。我还尝试找到基于最新代码库的一些教程,但都无法找到。Github上的django-allauth示例并没有提供任何帮助。请帮忙看看。另外,请随意提供任何基于最新代码库的链接或教程。
谢谢您的帮助。
1个回答

10

我是一个初学者,所以你可以期望像我这样的人犯一些愚蠢的错误,但我会努力学习。我花了很多时间试图解决这个问题。最终,问题原来是Twitter应用密钥设置:

我收到“社交网络登录失败”错误,因为我的Twitter应用设置未配置为localhost。确保您在Twitter应用中为您的localhost(开发机器)配置了以下设置:

回调URL:http://127.0.0.1:8000/

注意: 如果您想将其用于生产服务器,则需要将回调设置为您的域名,如下所示:

回调URL:http://Your_Domain_Name.com

或者更好的是仅使用另一组专门用于生产的密钥。

额外奖励:如果您正在使用django-social-auth并且未配置这些设置,则可能会遇到401未经授权错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接