修改登录地址
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.')))
|
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'}
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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')),
|
||||||
|
|
Loading…
Reference in New Issue