我稍微涉猎了一下使用Twitter身份验证的Python Django Social Auth。我可以登录。但是,当我尝试使用django.contrib.auth.logout注销时,它没有注销。注销的方法是什么?谢谢。
django.contrib.auth.logout
de90aj5v1#
您是想直接从Django应用程序中注销,还是想"忘记" Twitter访问权限?通常twitter auth令牌会被存储起来,以便用户下次想要连接到twitter时简化登录,这样用户就不必再次"接受"访问权限。
如果你只想从Django auth系统中注销,使用django.contrib.auth.views.logout视图或者创建一个自定义的注销视图就足够了。
django.contrib.auth.views.logout
要完全取消链接/断开连接社交账户,您需要使用social-auth中的断开连接函数。您可以使用以下模板标签获取断开连接的网址:
{% url "socialauth_disconnect" "backend-name" %}
For more information, please refer to http://django-social-auth.readthedocs.org/en/v0.7.22/configuration.html#linking-in-your-templates.
由于您已允许应用访问OAuth提供程序,因此验证提供程序将记住该决定。通常有两种方法可强制确认该访问权限:
{'approval_prompt': 'force'}
GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS
kiayqfof2#
您有注销视图吗?您需要有注销视图。
from django.contrib.auth import logout def logout_view(request): logout(request) # Redirect to a success page.
ou6hu8tu3#
此答案已过时,因为django-social-auth现在是python-social-auth请参阅较新的堆栈溢出解答here。阅读文档here
wi3ka0sx4#
根据documentation,注销和断开连接是有区别的。简而言之,
*断开连接-忘记用户社交帐户。*注销-结束当前用户会话并删除任何相关数据(如Cookie)。
从这个问题来看,我假设您仍然希望允许用户将Twitter与帐户关联,如果您希望断开连接,请check this answer。要注销用户,您可以在Django中添加settings.py
LOGOUT_URL = "logout"
然后,在您的www.example.com中urls.py
from django.urls import path from django.contrib.auth import views as auth_views urlpatterns = [ path("logout/", auth_views.LogoutView.as_view(template_name="registration/logged_out.html"), name="logout"), ]
然后,要注销用户,您可以在模板中使用类似于
<a href="{% url 'logout' %}">Logout</a>
此外,您还必须在appname/templates/registration/中创建一个logged_out.html文件,并在其中包含您希望注销用户看到的任何内容。
appname/templates/registration/
logged_out.html
4条答案
按热度按时间de90aj5v1#
您是想直接从Django应用程序中注销,还是想"忘记" Twitter访问权限?通常twitter auth令牌会被存储起来,以便用户下次想要连接到twitter时简化登录,这样用户就不必再次"接受"访问权限。
Django退出
如果你只想从Django auth系统中注销,使用
django.contrib.auth.views.logout
视图或者创建一个自定义的注销视图就足够了。社交身份验证断开连接
要完全取消链接/断开连接社交账户,您需要使用social-auth中的断开连接函数。您可以使用以下模板标签获取断开连接的网址:
For more information, please refer to http://django-social-auth.readthedocs.org/en/v0.7.22/configuration.html#linking-in-your-templates.
强制批准提示
由于您已允许应用访问OAuth提供程序,因此验证提供程序将记住该决定。通常有两种方法可强制确认该访问权限:
{'approval_prompt': 'force'}
添加到GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS
设置中。kiayqfof2#
您有注销视图吗?您需要有注销视图。
ou6hu8tu3#
此答案已过时,因为django-social-auth现在是python-social-auth
请参阅较新的堆栈溢出解答here。
阅读文档here
wi3ka0sx4#
根据documentation,注销和断开连接是有区别的。简而言之,
*断开连接-忘记用户社交帐户。
*注销-结束当前用户会话并删除任何相关数据(如Cookie)。
从这个问题来看,我假设您仍然希望允许用户将Twitter与帐户关联,如果您希望断开连接,请check this answer。
要注销用户,您可以在Django中添加settings.py
然后,在您的www.example.com中urls.py
然后,要注销用户,您可以在模板中使用类似于
此外,您还必须在
appname/templates/registration/
中创建一个logged_out.html
文件,并在其中包含您希望注销用户看到的任何内容。