8

我正在使用 twitter 身份验证对 django-social-auth 进行一些尝试。

我可以登录。

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

注销的方法是什么?

谢谢。

4

3 回答 3

9

您是想从 Django 应用程序中退出,还是想“忘记” Twitter 访问权限?通常,twitter auth token 会在用户下次想要连接到 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 提供程序,所以身份验证提供程序会记住该决定。通常有两种方法可以强制确认该访问权限:

  • 在您的身份验证提供者的管理控制台中撤销访问权限(例如,拒绝 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 回答
4

这个答案已经过时了,因为django-social-auth现在是python-social-auth

在此处查看更新的 Stack Overflow 答案。

在此处阅读文档

于 2014-03-21T19:28:05.377 回答