修改登录地址
This commit is contained in:
parent
e5a9c46e2e
commit
a5984ee239
|
@ -0,0 +1,4 @@
|
|||
from django.contrib import admin
|
||||
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||
TokenRefreshView)
|
||||
# Register your models here.
|
|
@ -0,0 +1,7 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AuthConfig(AppConfig):
|
||||
name = 'apps.auth1'
|
||||
verbose_name = "认证"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
|
@ -0,0 +1,5 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
class LoginSerializer(serializers.Serializer):
|
||||
username = serializers.CharField(label="用户名")
|
||||
password = serializers.CharField(label="密码")
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -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')
|
||||
]
|
|
@ -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()
|
|
@ -48,12 +48,6 @@ class TaskList(APIView):
|
|||
tasks = list(sorted(name for name in celery_app.tasks if not name.startswith('celery.')))
|
||||
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):
|
||||
perms_map = {'get': '*', 'post': 'ptask_create',
|
||||
'put': 'ptask_update', 'delete': 'ptask_delete'}
|
||||
|
|
|
@ -48,6 +48,7 @@ INSTALLED_APPS = [
|
|||
'simple_history',
|
||||
'apps.system',
|
||||
'apps.monitor',
|
||||
'apps.auth1',
|
||||
'apps.pum',
|
||||
'apps.em',
|
||||
'apps.hrm',
|
||||
|
|
|
@ -13,7 +13,7 @@ Including another URLconf
|
|||
1. Import the include() function: from django.urls import include, path
|
||||
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.urls.static import static
|
||||
from django.contrib import admin
|
||||
|
@ -23,8 +23,6 @@ from drf_yasg import openapi
|
|||
from drf_yasg.views import get_schema_view
|
||||
from rest_framework import routers
|
||||
from rest_framework.documentation import include_docs_urls
|
||||
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||
TokenRefreshView)
|
||||
from django.views.generic import TemplateView
|
||||
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'),
|
||||
|
||||
# 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/system/', include('apps.system.urls')),
|
||||
path('api/monitor/', include('apps.monitor.urls')),
|
||||
path('api/auth/', include('apps.auth1.urls')),
|
||||
path('api/pum/', include('apps.pum.urls')),
|
||||
path('api/em/', include('apps.em.urls')),
|
||||
path('api/hrm/', include('apps.hrm.urls')),
|
||||
|
|
Loading…
Reference in New Issue