nginx 文件鉴权

This commit is contained in:
caoqianming 2021-05-07 16:12:17 +08:00
parent 6af0e82702
commit 90abf36c61
3 changed files with 19 additions and 3 deletions

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card style="margin-top: 10px"> <el-card>
<el-table <el-table
v-loading="listLoading" v-loading="listLoading"
:data="subinspecttasklist" :data="subinspecttasklist"

View File

@ -9,7 +9,7 @@ from django.http import request
from django.http.response import JsonResponse from django.http.response import JsonResponse
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import status from rest_framework import status
from rest_framework.decorators import (action, authentication_classes, from rest_framework.decorators import (action, api_view, authentication_classes,
permission_classes) permission_classes)
from rest_framework.filters import OrderingFilter, SearchFilter from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.mixins import (CreateModelMixin, DestroyModelMixin, from rest_framework.mixins import (CreateModelMixin, DestroyModelMixin,
@ -408,6 +408,21 @@ class FileViewSet(ModelViewSet):
instance = serializer.save(create_by = self.request.user, name=name, size=size, type=type, mime=mime) instance = serializer.save(create_by = self.request.user, name=name, size=size, type=type, mime=mime)
instance.path = settings.MEDIA_URL + instance.file.name instance.path = settings.MEDIA_URL + instance.file.name
instance.save() instance.save()
from rest_framework_simplejwt.state import token_backend
from django.http import HttpResponseForbidden, HttpResponse
def mediaauth(request):
token = request.COOKIES.get('token', None)
if token:
try:
payload = token_backend.decode(token)
if payload.get('user_id', None):
return HttpResponse()
except:
return HttpResponseForbidden()
return HttpResponseForbidden()

View File

@ -30,13 +30,14 @@ from django.conf.urls import url
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
from rest_framework_simplejwt.views import TokenViewBase from rest_framework_simplejwt.views import TokenViewBase
from apps.system.views import WXMPlogin from apps.system.views import WXMPlogin,mediaauth
urlpatterns = [ urlpatterns = [
path('', TemplateView.as_view(template_name="index.html")), path('', TemplateView.as_view(template_name="index.html")),
path('api/admin/', admin.site.urls), path('api/admin/', admin.site.urls),
path('api/mediaauth/',mediaauth),
path('api/wxmplogin/',WXMPlogin.as_view()), path('api/wxmplogin/',WXMPlogin.as_view()),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token2/', Login2View.as_view(), name='token_obtain_2'), path('api/token2/', Login2View.as_view(), name='token_obtain_2'),