| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # coding:utf-8
- from django.contrib.auth import authenticate
- from rest_framework.views import APIView
- from rest_framework.response import Response
- from drf_spectacular.utils import extend_schema, OpenApiResponse
- from .serializers import UserDetailSerializers
- from monitor.permissions import LoginPermission
- class UserLoginView(APIView):
- @extend_schema(
- description="用户登陆接口",
- request=UserDetailSerializers,
- responses={
- 200: OpenApiResponse(description="无返回值")
- }
- )
- def post(self, request):
- serobj = UserDetailSerializers(data=request.data)
- if not serobj.is_valid():
- return Response(serobj.errors, status=400)
- username, password = request.data['username'], request.data['password']
- user = authenticate(username=username, password=password)
- request.session['user_id'] = user.id
- request.session.save()
- return Response(status=200)
- class UserLogoutView(APIView):
- permission_classes = [LoginPermission]
- @extend_schema(
- description="用户退出接口",
- responses={
- 200: OpenApiResponse(description="无返回值")
- }
- )
- def get(self, request):
- del request.session['user_id']
- request.session.save()
- return Response(status=200)
|