4

我正在嘗試與django-allauth合作。我跟着指示在github page和做以下:django-allauth和twitter整合 - 社交網絡登錄失敗

  1. 新增allauth網址爲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. 更新TEMPLATE_CONTEXT_DIRSTEMPLATE_CONTEXT_PROCESSORSAUTHENTICATION_BACKENDSINSTALLED_APPS。還添加了ACCOUNT_AUTHENTICATION_METHOD = "username_email"

  3. 在社交應用程序表中爲Twitter添加了密鑰和祕密。

  4. 將django-allauth模板複製到我的應用程序目錄並進行修改。我可以看到所有模板都正常工作,如/accounts/signup//accounts/social/connections/

現在,從連接或註冊,當我點擊鏈接的Twitter我/accounts/twitter/login/結束了以下錯誤:

Social Network Login Failure

An error occured while attempting to login via your social network account.

我缺少的東西?可能是一些愚蠢的錯誤(Twitter的登錄網址?沒有線索!)。我也試圖找到一些基於最新代碼庫的教程,但找不到任何教程。 github上的django-allauth示例沒有任何幫助。請幫忙。另外,請隨時爲我提供基於最新代碼庫的任何鏈接或教程。

在此先感謝。

回答

8

我是初學者,所以你可以指望像我這樣的一些愚蠢的錯誤,但我努力學習。我花了很多時間試圖解決這個問題。最後,這個問題原來是Twitter的應用程序鍵設置:

我得到「社會網絡登錄失敗」的錯誤,因爲我的Twitter應用程序設置沒有被配置到本地主機。請確保你有你的Twitter應用程序配置以下設置爲您的本地主機(開發機):

Callback URL: http://127.0.0.1:8000/

注:如果你想使用它的生產服務器,那麼你需要回調設置爲您域名如下:

Callback URL: http://Your_Domain_Name.com

OR更好地利用另一套鑰匙專爲只生產使用。

獎金:如果您正在使用django-social-auth,你沒有這些設置進行配置,那麼你可以用401 Unauthorized錯誤告終。