Files
Reskreen/authapp/views.py
brocsam 867994dc87 Add health check endpoint and update Docker Compose configuration
- Add HealthCheckView to authapp
- Update authapp/urls.py to include health check
- Update docker-compose.yml for backend services
- Add frontend service to docker-compose.yml
- Add external config for frontend
2025-02-28 21:39:51 +00:00

48 lines
1.6 KiB
Python

from rest_framework.views import APIView
from rest_framework import generics
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
from .serializers import UserSerializer
from rest_framework.permissions import IsAuthenticated, AllowAny
from rest_framework import status
from django.http import JsonResponse
from django.middleware.csrf import get_token
def get_csrf_token(request):
return JsonResponse({'csrfToken': get_token(request)})
class CustomAuthToken(ObtainAuthToken):
def post(self, request, *args, **kwargs):
response = super().post(request, *args, **kwargs)
token = Token.objects.get(key=response.data['token'])
return Response({'token': token.key, 'user_id': token.user_id})
class RegenerateTokenView(APIView):
permission_classes = [IsAuthenticated]
def post(self, request):
user = request.user
# Supprimer l'ancien token
Token.objects.filter(user=user).delete()
# Générer un nouveau token
token = Token.objects.create(user=user)
return Response({'token': token.key}, status=status.HTTP_201_CREATED)
class VerifyTokenView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request):
user = request.user
return Response({
'user_id': user.id,
'username': user.username,
'email': user.email
}, status=status.HTTP_200_OK)
class HealthCheckView(APIView):
permission_classes = [AllowAny]
def get(self, request, *args, **kwargs):
return Response({"status": "healthy"})