Проверка, был ли пользователю присвоен токен в Django Restframework
Я настраиваю аутентификацию токена для сайта, использующего Django Restframework, и мне нужно, чтобы пользователь мог загрузить свой токен, однако суть в том, что он может загрузить свой токен только один раз (аналогично модели Amazon AWS).
Другими словами; Есть ли собственный способ проверить, был ли пользователю назначен токен в restframework?
2 ответа
Вы можете сделать это:
from rest_framework.authtoken.models import Token
from django.conf import settings
token = Token.objects.create(user=settings.AUTH_USER_MODEL)
Теперь вы можете просто проверить, есть ли у данного пользователя токен:
user_with_token = Token.objects.get(user=user)
если вы просто хотите посмотреть, есть ли у пользователя токен:
is_tokened = Token.objects.filter(user=user).exist() # Returns a boolean
если запись существует, это означает, что пользователю назначен токен. Ссылка: ЗДЕСЬ
Следуйте документации, чтобы убедиться, что ваша база данных перенесена.
Попробуйте использовать сигнал django для автоматического создания токена пользователя, что-то вроде этого в файле моделей.
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)