当用户在django中注销时,如何拒绝访问上一页?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当用户在django中注销时,如何拒绝访问上一页?相关的知识,希望对你有一定的参考价值。

我是django的新手,我在Ubuntu服务器上使用1.8版本,我成功登录和注销过程但是当我的用户尝试转到上一页时,他们可以将其视为匿名用户。我怎么能拒绝访问?

我试图在我的views.py上使用if但是不起作用:

def login(request):
    if not request.user.is_authenticated():
        return render(request,"base.html",{})
    return render(request,"general.html",{})

@login_required 
def general(request):
    return render(request,"general.html")

希望可以有人帮帮我。

编辑:我正在使用django的默认网址登录并注销。

url(r'^$','django.contrib.auth.views.login', {'template_name': 'base.html'}, name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': 'login'}, name='logout'),
答案

我使用一个简单的脚本来解决它,当用户注销“清除”缓存时,重新加载,可能这不是正确的方法,但对我有效,我会尝试继续搜索更好的方式去做吧。如果有人知道,请分享。

另一答案

您可以使用隐藏模板,

{% if user.is_authenticated %}
<html></html>
{% else %}
<html> add for logged out user</html>
{% endif %}

如果用户在注销后回击按钮,则会阻止用户查看您的页面。

编辑:在您的注销功能中,您可以使用此功能,

from django.views.decorators.cache import cache_control

@cache_control(no_cache=True, must_revalidate=True)
 def your_function()
   #add your code
 return

这将在用户注销后清除缓存。

以上是关于当用户在django中注销时,如何拒绝访问上一页?的主要内容,如果未能解决你的问题,请参考以下文章

处理注销的更好方法

获取 403:禁止访问:当用户意外关闭登录会话时,访问被拒绝

Django LogoutView 重定向到上一页

用户注销时如何使PHP中的页面过期

强制注销facebook oauth

注销后禁用浏览器“返回”按钮?