在settging文件中找到MIDDLEWARE 添加自定义文件路径Monitor.middlewares.IsLogin
> MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'Monitor.middlewares.IsLogin',
]
添加不需要需要拦截的路由,可根据项目类型修改拦截的要求,判断session中是否有用户信息或者判断token中是否有用户信息,没有那么就然后相应的处理
class IsLogin:
pass_filter = ['', '/', '/login']
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.path in IsLogin.pass_filter:
response = self.get_response(request)
return response
else:
try:
if request.session['is_login']:
response = self.get_response(request)
return response
except KeyError:
return redirect('/login')