from django.contrib.auth import authenticate, login, logout
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from django.contrib.auth.decorators import login_required
import logging
logger = logging.getLogger('jikong')
@api_view(['POST', 'DELETE'])
def session(request):
# 登錄操作
if request.method == 'POST':
data = request.data
username = data.get("username")
password = data.get("password")
user = authenticate(username=username, password=password)
if user is not None:
# 登錄
login(request, user)
return Response(status=status.HTTP_200_OK)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)
if request.method == 'DELETE':
logout(request)
return Response(status=status.HTTP_200_OK)
# 修改密碼接口
@api_view(['GET', 'PUT'])
@login_required
def users(request):
if request.method == 'GET':
name = request.user.group.name
res_dict = {'name': name}
return Response(data=res_dict, status=status.HTTP_200_OK)
if request.method == 'PUT':
user = request.user
data = request.data
username = data.get('username')
password = data.get('password')
if not all([username, password]):
return Response(status=status.HTTP_400_BAD_REQUEST)
user.set_password(password)
try:
user.save()
except Exception as e:
logger.error(e)
return Response(status=status.HTTP_400_BAD_REQUEST)
logout(request)
return Response(status=status.HTTP_200_OK)