使用django-social-auth注销

时间:2013-01-25 20:25:59

标签: django django-socialauth

我正在使用twitter身份验证与django-social-auth进行一些讨论。

我可以登录。

但是,当我尝试使用django.contrib.auth.logout注销时,它不会注销。

退出的方式是什么?

感谢。

3 个答案:

答案 0 :(得分:9)

您是想尝试从Django应用程序注销还是想“忘记”Twitter访问?通常,存储twitter身份验证令牌以便在用户下次连接到Twitter时进行简化登录,因此用户不必再次“接受”访问权限。

Django注销

如果您只想从Django auth系统注销,那么使用django.contrib.auth.views.logout视图或创建自定义注销视图就足够了。

社交身份验证断开连接

要完全取消链接/断开社交帐户,您需要在social-auth中使用断开连接功能。您可以使用以下模板标记获取断开网址:

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

有关详细信息,请参阅http://django-social-auth.readthedocs.org/en/v0.7.22/configuration.html#linking-in-your-templates

强制批准提示

由于您已经允许您的应用访问OAuth提供商,因此身份验证提供商会记住该决定。通常有两种方法可以强制确认访问权限:

  • 在您的身份验证提供程序的管理控制台中撤消访问权限(例如,拒绝Twitter应用访问权限)。
  • 设置强制批准提示的额外OAuth参数。我不确定Twitter是否提供此类服务,但如果您使用的是Google OAuth2,则只需将{'approval_prompt': 'force'}添加到GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS设置即可。

答案 1 :(得分:5)

你有退出视图吗?您需要有一个注销视图。

示例:

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.

答案 2 :(得分:4)

此答案已过时,因为django-social-auth现在是python-social-auth

请参阅较新的Stack Overflow回答here

阅读文档here