制作了一个网页登录的功能,想实现在关闭页面之后账户自动登出的功能或者一段时间后自动登出也可以,却不知道怎么做
middlewarfe中的代码是这样的
urllist2 = ['/web/login', '/web/logout', '/web/dologin']
if re.match(r'^/web',path)and (path not in urllist2):
#判断是否登录(在于session中没有adminuser)
if 'adminuser' not in request.session:
#重定向到登录页
return redirect(reverse("web_login"))
index的代码是这样的
def index(request):
''' 项目前段,企业搜索'''
return redirect(reverse("web_index"))
def webindex(request):
''' 项目前段,企业搜索'''
return render(request,"web/index.html")
#管理员登录表单
def login(request):
return render(request,'web/login.html')
#执行管理员登录
def dologin(request):
try:
#根据登录账号获取登 录者信息
user = User.objects.get(username=request.POST['username'])
#判断当前用户是否是管理员
if user.status == 1:
#判断登录密码是否相同
import hashlib
md5 = hashlib.md5()
s = request.POST['pass']+user.password_salt #从表单中获取密码并添加干扰值
md5.update(s.encode('utf-8')) #将要产生md5的子串放进去
if user.password_hash == md5.hexdigest(): #获取md5值
print('登录成功')
#将当前登录成功的用户信息以adminuser为key写入到session中
request.session['adminuser'] = user.toDict()
#重定向到后台管理首页
return redirect(reverse("web_index"))
else:
context = {"info":"登录密码错误!"}
else:
context = {"info":"无效的登录账号!"}
except Exception as err:
print(err)
context = {"info":"登录账号不存在"}
return render(request,"web/index.html",context)
#管理员退出
def logout(request):
del request.session['adminuser']
return redirect(reverse("myadmin_login"))
url是这样的
path('login', index.login, name="web_login"), #加载登录表单
path('dologin', index.dologin, name="web_dologin"), #执行登录
path('logout', index.logout, name="web_logout"), #退出
path("web/", include([
path('', index.webindex, name = 'web_index'),
])),