调用注销后移回网页

  • 本文关键字:网页 注销 调用 django
  • 更新时间 :
  • 英文 :


登录时,部门的密钥存储在分离中,并重定向到用户的所需部门

在login_validation

check = models.user.authenticate(password_entered, username_entered)
if check:
print('valid login')
# check the type of user
request.session['department'] = check['department']             
request.session.modified = True

注销时,部门密钥被删除

def logout(request):
if request.session.has_key('department'):
del request.session['department']
request.session.modified = True
return render(request, 'login.html', {'login_form': forms.login_form})

并检查网站中的每个页面是否存在部门密钥,如果不存在,则用户被重定向到登录页面

def parts_home(request):
try:
department= request.session['department']
if department != 'parts':
raise Exception
except:
return HttpResponseRedirect(reverse('main:login_page'))

这在地址栏中对部门的 URL 进行硬编码时工作正常,但在注销后按后退按钮后,不会检查部门密钥,并且加载部门页面而不是登录页面。 解决方案是什么?

尝试装饰器login_required

在视图函数之前添加此装饰器。

例如

from django.contrib.auth.decorators import login_required
@login_required(login_url='/login')
def my_view(request):
....
....

参考:
需要登录的装饰器

最新更新