django_project_demo/app/middleware/auth.py
2024-08-24 03:25:23 +00:00

33 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
这是登录鉴权的中间件程序,其实就是一个类
process_request是进入中间件 process_response是离开中间件程序
用于判断是否登录系统request.session.get('info')session变量在views/account.py中定义
"""
# 导入模块
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import render, redirect
class AuthMiddleWare(MiddlewareMixin):
""" 中间件 """
def process_request(self, request):
# print('M1.process_request进来了')
# (重要)排除不需要进行登录验证的页面,例如登录界面,不然回造成死循环
# request.path_info 当前页面的URL例如'/login/'
if request.path_info in ['/login/', '/image/code/']:
return # 返回None
# 判断是否已登录返回None则继续向下一个中间件执行最终到达视图函数
info = request.session.get('info')
# print(info)
if info:
return # 返回None
# 没有登录,则返回登录界面
return redirect('/login/')
def process_response(self, request, response):
# print('M1.process_request,走了')
return response