5

私はdjango-allauthで作業しようとしています。私はgithubページの指示に従い、次のことを行いました:

  1. urls.py に allauth URL を追加

    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_BACKENDSおよび を更新しましINSTALLED_APPSた。また追加ACCOUNT_AUTHENTICATION_METHOD = "username_email"

  3. ソーシャル アプリの表に twitter のキーとシークレットを追加しました。

  4. django-allauth テンプレートをアプリのディレクトリにコピーして変更しました。すべてのテンプレートが および のよう/accounts/signup/に正常に機能していることがわかります/accounts/social/connections/

さて、Twitterリンク/accounts/twitter/login/をクリックしたときの接続またはサインアップから、次のエラーが発生しました。

ソーシャル ネットワークのログイン失敗

ソーシャル ネットワーク アカウント経由でログインしようとしたときにエラーが発生しました。

何か不足していますか?ばかげた間違いかもしれません (Twitter のログイン URL? 手がかりがありません!)。また、最新のコードベースに基づいたチュートリアルをいくつか見つけようとしましたが、見つかりませんでした。github の django-allauth の例は役に立ちませんでした。助けてください。また、最新のコードベースに基づくリンクやチュートリアルを提供してください。

前もって感謝します。

4

1 に答える 1

9

私は初心者なので、私のような人からの愚かな間違いを期待することができますが、私は学ぼうとしています. これを解決するために何時間も費やしました。最後に、問題は Twitter アプリ キーの設定であることが判明しました。

Twitter アプリの設定がローカルホスト用に構成されていないため、「ソーシャル ネットワークのログインに失敗しました」というエラーが表示されます。ローカルホスト (開発マシン) の Twitter アプリで次の設定が構成されていることを確認します。

Callback URL: http://127.0.0.1:8000/

注:運用サーバーに使用する場合は、次のように Callback をドメイン名に設定する必要があります。

Callback URL: http://Your_Domain_Name.com

または、本番環境専用の別のキー セットを使用することをお勧めします。

ボーナス: django-social-authを使用していて、これらの設定が構成されていない場合、401 Unauthorizedエラーが発生する可能性があります。

于 2012-08-03T02:03:58.603 に答える