refactor: moved ExpiringToken to models.py

This commit is contained in:
Chneemann 2025-03-27 08:34:37 +01:00
parent fee493191e
commit 87f9b3a4b9
2 changed files with 15 additions and 16 deletions

View file

@ -1,3 +1,15 @@
from django.utils import timezone
from rest_framework.authtoken.models import Token
from django.db import models
from join.settings import TOKEN_EXPIRATION_TIME
# Create your models here.
class ExpiringToken(Token):
expires_at = models.DateTimeField(null=True, blank=True)
def is_expired(self):
return self.expires_at and self.expires_at < timezone.now()
def save(self, *args, **kwargs):
if not self.expires_at:
self.expires_at = timezone.now() + TOKEN_EXPIRATION_TIME
super().save(*args, **kwargs)

View file

@ -1,14 +1,12 @@
from django.shortcuts import render, redirect
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status, authentication
from rest_framework.authtoken.models import Token
from django.contrib.auth import authenticate
from join.settings import TOKEN_EXPIRATION_TIME
from .serializer import LoginSerializer
from rest_framework.permissions import IsAuthenticated
from django.db import models
from django.utils import timezone
from .models import ExpiringToken
class LoginView(APIView):
@ -73,14 +71,3 @@ class AuthView(APIView):
return Response({"error": "Token expired, please log in again"}, status=status.HTTP_401_UNAUTHORIZED)
return Response({"user_id": request.user.id}, status=status.HTTP_200_OK)
class ExpiringToken(Token):
expires_at = models.DateTimeField(null=True, blank=True)
def is_expired(self):
return self.expires_at and self.expires_at < timezone.now()
def save(self, *args, **kwargs):
if not self.expires_at:
self.expires_at = timezone.now() + TOKEN_EXPIRATION_TIME
super().save(*args, **kwargs)