Skip to content

Instantly share code, notes, and snippets.

@yerkbn
Created October 25, 2018 16:08
Show Gist options
  • Save yerkbn/d470bb6300c8158f137b39854f95e436 to your computer and use it in GitHub Desktop.
Save yerkbn/d470bb6300c8158f137b39854f95e436 to your computer and use it in GitHub Desktop.
from rest_framework.authtoken.models import Token
from datetime import timedelta
from django.utils import timezone
from django.conf import settings
#this return left time
def expires_in(token):
time_elapsed = timezone.now() - token.created
left_time = timedelta(seconds = settings.TOKEN_EXPIRED_AFTER_SECONDS) - time_elapsed
return left_time
# token checker if token expired or not
def is_token_expired(token):
return expires_in(token) < timedelta(seconds = 0)
# if token is expired new token will be established
# If token is expired then it will be removed
# and new one with different key will be created
def token_expire_handler(token):
is_expired = is_token_expired(token)
if is_expired:
token.delete()
token = Token.objects.create(user = token.user)
return is_expired, token
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment