8

Twitter認証を使ってdjango-social-authを少しいじっています。

ログインできます。

しかし、を使用してログアウトしようとすると、ログアウトしdjango.contrib.auth.logoutません。

ログアウト方法は?

ありがとう。

4

3 に答える 3

9

Django アプリからログアウトしようとしていますか、それとも Twitter アクセスを「忘れ」たいですか? 通常、Twitter の認証トークンは、ユーザーが次回 Twitter に接続するときに簡単にログインできるように保存されるため、ユーザーは再度アクセスを「受け入れる」必要はありません。

Django ログアウト

Django 認証システムからログアウトするだけの場合は、django.contrib.auth.views.logoutビューを使用するか、カスタム ログアウト ビューを作成するだけで十分です。

ソーシャル認証の切断

ソーシャル アカウントを完全にリンク解除/切断するには、social-auth の切断機能を使用する必要があります。次のテンプレート タグを使用して切断 URL を取得できます。

{% url "socialauth_disconnect" "backend-name" %}

詳細については、http://django-social-auth.readthedocs.org/en/v0.7.22/configuration.html#linking-in-your-templates を参照してください

強制承認プロンプト

OAuth プロバイダーへのアプリ アクセスを既に許可しているため、認証プロバイダーはその決定を記憶します。アクセス許可の確認を強制するには、通常、次の 2 つの方法があります。

  • 認証プロバイダーの管理コンソールでアクセス許可を取り消します (例: Twitter アプリへのアクセスを拒否します)。
  • 承認プロンプトを強制する追加の OAuth 引数を設定します。Twitter がそのような機能を提供しているかどうかはわかりませんが、Google OAuth2 を使用している場合は{'approval_prompt': 'force'}GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS設定に追加するだけで済みます。
于 2013-04-19T15:17:31.320 に答える
5

ログアウト ビューはありますか?ログアウト ビューが必要です。

例:

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.
于 2013-01-25T22:44:30.357 に答える