mise en place du système autapp
This commit is contained in:
36
authapp/views.py
Normal file
36
authapp/views.py
Normal file
@@ -0,0 +1,36 @@
|
||||
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
|
||||
from rest_framework import status
|
||||
|
||||
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)
|
Reference in New Issue
Block a user