修改登录地址

This commit is contained in:
caoqianming 2022-01-25 09:46:35 +08:00
parent e5a9c46e2e
commit a5984ee239
12 changed files with 84 additions and 12 deletions

View File

View File

@ -0,0 +1,4 @@
from django.contrib import admin
from rest_framework_simplejwt.views import (TokenObtainPairView,
TokenRefreshView)
# Register your models here.

View File

@ -0,0 +1,7 @@
from django.apps import AppConfig
class AuthConfig(AppConfig):
name = 'apps.auth1'
verbose_name = "认证"

View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

View File

@ -0,0 +1,5 @@
from rest_framework import serializers
class LoginSerializer(serializers.Serializer):
username = serializers.CharField(label="用户名")
password = serializers.CharField(label="密码")

View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View File

@ -0,0 +1,12 @@
from django.urls import path
from rest_framework_simplejwt.views import (TokenObtainPairView,
TokenRefreshView)
from apps.auth1.views import LoginView, LogoutView, TokenBlackView
urlpatterns = [
path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('token/black/', TokenBlackView.as_view(), name='token_black'),
path('login/', LoginView.as_view(), name='api_login'),
path('logout/', LogoutView.as_view(), name='api_logout')
]

View File

@ -0,0 +1,47 @@
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from django.contrib.auth import authenticate, login, logout
from rest_framework.generics import CreateAPIView
from rest_framework.permissions import IsAuthenticated
from apps.auth1.serializers import LoginSerializer
# Create your views here.
class TokenBlackView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request, *args, **kwargs): # 可将token加入黑名单
return Response(status=status.HTTP_200_OK)
class LoginView(CreateAPIView):
authentication_classes = []
permission_classes = []
serializer_class = LoginSerializer
def create(self, request, *args, **kwargs):
"""
账户密码登录
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
vdata = serializer.validated_data
user = authenticate(username = vdata.get('username'),
password = vdata.get('password'))
if user is not None:
login(request, user)
return Response()
return Response('登录失败', status=status.HTTP_400_BAD_REQUEST)
class LogoutView(APIView):
authentication_classes = []
permission_classes = []
def post(self, request, *args, **kwargs):
"""
退出登录
"""
logout(request)
return Response()

View File

@ -48,12 +48,6 @@ class TaskList(APIView):
tasks = list(sorted(name for name in celery_app.tasks if not name.startswith('celery.'))) tasks = list(sorted(name for name in celery_app.tasks if not name.startswith('celery.')))
return Response(tasks) return Response(tasks)
class LogoutView(APIView):
permission_classes = []
def get(self, request, *args, **kwargs): # 可将token加入黑名单
return Response(status=status.HTTP_200_OK)
class PTaskViewSet(OptimizationMixin, ModelViewSet): class PTaskViewSet(OptimizationMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'ptask_create', perms_map = {'get': '*', 'post': 'ptask_create',
'put': 'ptask_update', 'delete': 'ptask_delete'} 'put': 'ptask_update', 'delete': 'ptask_delete'}

View File

@ -48,6 +48,7 @@ INSTALLED_APPS = [
'simple_history', 'simple_history',
'apps.system', 'apps.system',
'apps.monitor', 'apps.monitor',
'apps.auth1',
'apps.pum', 'apps.pum',
'apps.em', 'apps.em',
'apps.hrm', 'apps.hrm',

View File

@ -13,7 +13,7 @@ Including another URLconf
1. Import the include() function: from django.urls import include, path 1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
""" """
from apps.system.views import FileViewSet, LogoutView from apps.system.views import FileViewSet
from django.conf import settings from django.conf import settings
from django.conf.urls.static import static from django.conf.urls.static import static
from django.contrib import admin from django.contrib import admin
@ -23,8 +23,6 @@ from drf_yasg import openapi
from drf_yasg.views import get_schema_view from drf_yasg.views import get_schema_view
from rest_framework import routers from rest_framework import routers
from rest_framework.documentation import include_docs_urls from rest_framework.documentation import include_docs_urls
from rest_framework_simplejwt.views import (TokenObtainPairView,
TokenRefreshView)
from django.views.generic import TemplateView from django.views.generic import TemplateView
from utils.view import GenSignature, UpdateDevelop from utils.view import GenSignature, UpdateDevelop
@ -53,12 +51,10 @@ urlpatterns = [
path('api/redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), path('api/redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
# api # api
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('api/token/black/', LogoutView.as_view(), name='token_black'),
path('api/file/', include(router.urls)), path('api/file/', include(router.urls)),
path('api/system/', include('apps.system.urls')), path('api/system/', include('apps.system.urls')),
path('api/monitor/', include('apps.monitor.urls')), path('api/monitor/', include('apps.monitor.urls')),
path('api/auth/', include('apps.auth1.urls')),
path('api/pum/', include('apps.pum.urls')), path('api/pum/', include('apps.pum.urls')),
path('api/em/', include('apps.em.urls')), path('api/em/', include('apps.em.urls')),
path('api/hrm/', include('apps.hrm.urls')), path('api/hrm/', include('apps.hrm.urls')),