by default
rest framework token does not expire
can add customer helpers to expire token(token.delete) and auto renew the token (token = Token.objects.create(user = token.user)
https://medium.com/@yerkebulan199/django-rest-framework-drf-token-authentication-with-expires-in-a05c1d2b7e05
| 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 |
No comments:
Post a Comment