Python全系列 教程
3567个小节阅读:5930.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
创建user_app/middleware.py
文件,用于是否登录验证
xxxxxxxxxx
311from rest_framework import status
2# from rest_framework.response import Response
3from django.http import JsonResponse
4
5from .utils import verify_token
6
7# 用于判断用户是否登录
8class LoginRequiredMiddleware:
9 def __init__(self,get_response):
10 self.get_response = get_response
11
12 def __call__(self,request):
13 # 判断用户访问的接口是否是和用户相关的接口
14 if request.path.startswith('/api/user'):
15 # 判断是否登录, 通过true,没通过就是false
16 if not verify_token(request.META.get('HTTP_AUTHORIZATION')):
17 # 没用登录,或者验证失败,返回请登录响应
18 # return Response({ 这个不让用
19 # 'code':status.HTTP_401_UNAUTHORIZED,
20 # 'msg':'请登录'
21 # })
22 return JsonResponse(
23 {
24 'code':status.HTTP_401_UNAUTHORIZED,
25 'msg':'请登录',
26 },
27 json_dumps_params={'ensure_ascii':False}
28 )
29 # 登录了,或者验证成功,继续执行后续的代码
30 return self.get_response(request)
31
配置bz_edu_project\settings.py
,配置是否登录验证中间件
xxxxxxxxxx
101MIDDLEWARE = [
2 'django.middleware.security.SecurityMiddleware',
3 'django.contrib.sessions.middleware.SessionMiddleware',
4 'django.middleware.common.CommonMiddleware',
5 'django.middleware.csrf.CsrfViewMiddleware',
6 'django.contrib.auth.middleware.AuthenticationMiddleware',
7 'django.contrib.messages.middleware.MessageMiddleware',
8 'django.middleware.clickjacking.XFrameOptionsMiddleware',
9 'user_app.middleware.LoginRequiredMiddleware', # 验证是否登录中间件
10]